2013-02-14 42 views
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創建新記錄時出現上述錯誤。我無法理解錯誤是什麼,這條記錄可以如何插入。使用rails創建記錄3.2.11

回答

4

Subject模型只是添加一行:

attr_accessible :name, :position, :value 

質量分配安全提供了保護屬性從最終用戶分配一個接口。它指定了可以通過批量賦值設置的模型屬性的白名單,例如new(attributes),update_attributes(attributes)或attributes =(attributes)。

的更多信息:

0

他們做出rails 3.2.3最近的安全更改,需要你允許質量分配明確通過將config.active_record.whitelist_attributes設置爲false http://www.h-online.com/security/news/item/Rails-3-2-3-makes-mass-assignment-change-1498547.html

或者,您也可以設置attr_accessible來代替要允許更改的模型中的屬性,而不是允許進行質量檢測。

attr_accessible :name, :position, :value #.... 
+0

非常感謝你,這是我遇到的確切的錯誤,這是由於一些安全原因。 – Mothirajha 2013-02-16 06:11:45

相關問題