Rails 4つの強力なパラメーターを使用してWebアプリを構築しています。
管理者のバックオフィスコントローラーを構築するとき、すべてのモデル属性を許可する最良の方法は何でしょうか?
今のところ、私はこれを書いた:
def user_params
params.require(:user).permit(User.fields.keys)
end
もっと良い方法を考えていますか?
Bangバージョンの許可を呼び出すことができます。
params.require(:user).permit!
参照用のソースコード:
def permit!
each_pair do |key, value|
convert_hashes_to_parameters(key, value)
self[key].permit! if self[key].respond_to? :permit!
end
@permitted = true
self
end
Skull0incの答えは機能しますが、created_at
およびupdated_at
。強力なパラメーターの目的は、コントローラーで更新可能な属性のみを一覧表示することです。何かのようなもの...
def user_params
params.require(:user).permit(User.column_names - ["created_at", "updated_at"])
end
これは機能しますか?
def user_params
params.require(:user).permit(User.column_names)
end