2016-03-21 15 views
0

には、以下のuser_paramsを考えます。以前は次の行には、仕事をした:AMS 0.10.0.rc4からパラメタを削除するには?私は削除する<code>:current_password</code>を要求する特定の操作を行うためにパラメータを削除することができません</p> <pre><code>def user_params ActiveModelSerializers::Deserialization.jsonapi_parse!(params.to_unsafe_h) end </code></pre> <p>:

user_params.delete(:current_password) 

しかし、0.10.0.rc4を実装しているため、問題の操作は、ActiveRecordのを生成:: UnknownAttributeError

user.update_without_password(user_params) 
(ユーザーのための未知の属性 'current_password'。)

これはバグか文法ミスかどうかは分かりませんので、Githubリポジトリの代わりにSOに投稿することにしました。

答えて

0

更新#1

BF4が要求したとして、私はこの質問に関するAMSのGithub上issue #1610を作成しました。その間、元の投稿は最終的な修正が作成される際の回避策です。

オリジナルポスト

私はのparamsを削除する方法を見つけることができませんでしたが、.except(a)を使用すると、以下のアップデート方法のようにトリックん:あなたはこの質問と回答を共有

# Render the updated User using UserSerializer and the AMS Deserialization. 
    def update 
    # Check if password is blank, if so, clear :current_password 
    # and update without password, else updates password. 
    if user_params[:password].blank? || user_params[:current_password].blank? 
     user.update_without_password(user_params.except(:current_password,:password)) 
     render json: user 
    else 
     if user.update_with_password(user_params) 
     render json: user, status: :ok 
     else 
     render json: user.errors, status: :unprocessable_entity 
     end 
    end 
    end 
+1

を気だろうhttps://github.com/rails-api/active_model_serializersリポジトリ? – BF4

関連する問題