我最近進入rails,我看到這個MassAssignment錯誤很常見的情況下,我想用parent_id
保存孩子。attr_accessible在Ruby on Rails 3及其安全影響
要解決此問題,所有人都建議將關聯的外鍵添加到attr_accessbile
列表中。
我可以通過這樣做來解決這個問題,但我不確定發生了什麼。白名單foreign_key
是否真的會造成安全問題?
讓我們考慮的車型以下情形:
class BusinessType < ActiveRecord ::Base
has_one :business_form
validates :name, :presence => true
attr_accesible :name, :enabled
end
class BusinessForm < ActiveRecord ::Base
belongs_to :business_type
validates :name, :presence => true
validates_associated :business_type, :presence=>true
attr_accessible :name, :enabled
end
在上述情況下,每當我試圖保存business_form
沒有business_type_id
在attr_accessible
名單,我會得到質量分配錯誤。當我將它添加到白名單時,即使business_type
選擇框留空並且表單提交,我也沒有收到任何錯誤消息。
我要求任何人在這個領域的軌道上擺脫一些光。請指點我會詳細解釋的任何鏈接。
如果什麼人有外鍵的值更改爲一點兒也不存在的價值,給他們送去了submission.this將增加記錄無效的外鍵的 – Ramoji
只要你有那麼你的模型的關係activerecord會拋出一個錯誤說外鍵記錄不存在。 – weexpectedTHIS