我收到此错误“警告:无法批量分配受保护的属性:races_attributes” ,在轨道3上跟随此http://railscasts.com/episodes/196-nested-model-form-part-1时。
Races是Events的一个组成部分。这是我的模特/ race.rb:
class Race < ActiveRecord::Base
belongs_to :event
attr_accessible :name, :unit
end
这是我的models / event.rb:
class Event < ActiveRecord::Base
has_many :races, :dependent => :destroy
accepts_nested_attributes_for :races
attr_accessible :name, :date, :description, :location_name, :address_one, :address_two, :city, :state, :zip, :active, :races_attributes
end
任何想法?
答案 0 :(得分:20)
比使用attr_accessible
更短,比使用whitelist_attributes
更安全: attr_protected
只需指出受保护的属性,Rails就会推断所有其他属性都可以进行质量分配:
class MyClass < ActiveRecord::Base
attr_protected :id
end
(我总是有更多的属性,我想要大量分配,而不是我想要保护的属性。)
答案 1 :(得分:11)
attr_accessible
指定您无法使用save
方法批量分配属性。因此,如果您更改未使用attr_accessible
定义的属性,您将收到警告,因为它实际上不会保存在数据库中。