https://rails-bestpractices.com/posts/2013/09/18/don-t-modify-the-params-hash/
偉大な本家様
自分の勉強用に Rails Best Practiceシリーズを翻訳します。
Before
paramsハッシュを修正してはいけない
def search
params.except!(:action, :controller)
@search = User.search(params)
render "search"
end
後で誰かがこのアクションの最後にparams[:action]やparams[:controller]を必要とするコードを追加したとしたら、その人はあなたのコードをリファクタリングしなければならないでしょう。
Refactor
代わりにparamsハッシュをコピーします。
def search
filter = params.except(:action, :controller)
@search = User.search(filter)
render "search"
end
より良い方法としては、キーを知っていればstrong_parametersと同じように別のparamsメソッドを作成することです。
def search
@search = User.search(search_params)
render "search"
end
private
def search_params
# params.except(:action, :controller)
params.permit(:user_id, :name)
end
コメント