Ruby on Railsガイドに従うと、開発者は保護されたフィールドを一括割り当てできませんが、それを実行しようとしても例外は発生しません。しかし、私の場合、アプリケーションnew
のメソッドを介して異なるパラメータを一括割り当てします。rails
@edition = Edition.new params[:edition]
次の例外を発生させます。
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: price
なんで?私は何かを間違って理解しましたか?一括割り当て例外を取得しない方法ですか?割り当ての前にハッシュから保護された属性を削除するのは便利ではないと思います。
更新:エディションモデル:
class Edition < ActiveRecord::Base
attr_accessible :title, :description
attr_protected :price
end
params[:edition].inspect
:
{"title"=>"t", "description"=>"d", "price"=>"123"}