0
irb(main):016:0> subject  = Subject.new
=> #<Subject id: nil, name: nil, position: nil, visible: false, created_at: nil, updated_at: nil>
irb(main):017:0> 
irb(main):017:0> subject = Subject.new(:name => "First", :position => 1, :value => true)
ActiveModel::MassAssignmentSecurity::Error: Can't mass-assign protected attributes: name, position, value

Rails 3.2.11 を使用して新しいレコードを作成しているときに、上記のエラーが発生しました。エラーが何であるか、このレコードを挿入する方法を理解できません。

4

2 に答える 2

4

Subjectモデルに次の行を追加するだけです。

attr_accessible :name, :position, :value

一括割り当てセキュリティは、エンドユーザーの割り当てから属性を保護するためのインターフェイスを提供します。これは、new(attributes)、update_attributes(attributes)、attributes =(attributes)など、一括割り当てを介して設定できるモデル属性のホワイトリストを指定します。

詳しくは:

于 2013-02-14T12:18:27.403 に答える
0

最近のセキュリティ変更により、 http: //www.h-online.com/security/news/item/Rails-3-2-3-makes-mass-assignment- に設定してrails 3.2.3一括割り当てを明示的に許可する必要があります。変更-1498547.htmlconfig.active_record.whitelist_attributesfalse

あるいは、一括割り当てを許可する代わりに、attr_accessible変更できるようにしたいモデルの属性に対して を設定するだけです。

attr_accessible :name, :position, :value #....
于 2013-02-14T12:45:18.457 に答える