update_attributes ステートメントの後に更新されたフィールドを知りたいです。更新可能なパラメーターをフィルター処理し、更新したくないパラメーターを から削除していparams[:model]
ます。さて、新しい更新可能なパラメーターのいくつかは古いものと同じ値を持つ可能性があり、同じ値のためにどのパラメーターが更新され、どのパラメーターがスキップされたかを知りたいです。コードの一部を次に示します。
UPDATABLE_PARAMS = ["param1", "param2", "param3", "param4"]
def update
@dr = DR.find(params[:id])
authorize! :update, @dr #devise stuff
hnew = params[:dr]
hnew.delete_if {|k, v| !UPDATABLE_PARAMS.include?(k.to_s) }
if @dr.update_attributes(hnew)
@dr.update_attribute(:last_updated_by, current_user.email)
@dr.touch
end
render :update_result
end
トリッキーな部分は次のとおりです。
@dr
オブジェクトを JSON でレンダリングしたいと思います (ただし、それは既に設定されています) updated_params
。その標準フィールドに加えて、.. hnew
私は自分の意見をそのまま送信することもできます@hnew
が、そうすると、異なるものだけでなく、処理されたすべてのパラメーターを取得できます。
変更されたパラメーターを取得するにはどうすればよいですか?