創建種子數據時,我無法真正找到繞過attr_accessible的乾淨方式。我希望能夠毫無問題地使用批量分配,因爲我知道這個種子文件是完全安全的。繞過seed.rb中的attr_accessible
有沒有一種乾淨的方法來強制Rails 3接受這些?
創建種子數據時,我無法真正找到繞過attr_accessible的乾淨方式。我希望能夠毫無問題地使用批量分配,因爲我知道這個種子文件是完全安全的。繞過seed.rb中的attr_accessible
有沒有一種乾淨的方法來強制Rails 3接受這些?
#in model
attr_accessible :name, :role,.... :as => :seed
#in seed.rb
model.assign_attributes({name: "Putin", role: "president"....},:as => :seed)
model.save
這裏有一個快速的黑客(感謝邁克),把這個在您的seeds.rb的頂部:
# Dodge the mass assignment
User.send(:attr_accessible, :username)
User.send(:attr_accessible, :admin)
現在您可以輕鬆調用該不會搞亂你的模型(使用:作爲=>:種子):
@user = User.find_or_create_by_username(:username => 'ryanonrails', :admin => true)
當使用find_or_create_by時,「:as =>:seed」不起作用! –
http://stackoverflow.com/questions/4838716/how-to-avoid-the-validation-callbacks-and-attr-accessible-effects-during-the – tybro0103
我」已經看到了它,我想我也嘗試過它。我無法讓它在Rails 3中工作。 – Spyros