我通过PragProg教授自己的Rails(显然已经过时了 - 我正在使用Rails 3.2.3) Rails for PHP Developers 。我发现了这本书没有谈到的seed.rb文件。我试图为很多事情建立适当的种子条目,它给了我can't mass-assign protected attributes
。
经过一堆搜索,看来我唯一的选择是通过attr_accessible
打开这些内容,或者关闭阻止批量分配的默认功能。但我希望保留设置所暗示的安全性。我不希望这些条目在播种后进行编辑。我只需要先将它们放入数据库中。
我在这里看不到什么?如何在不关闭保护的情况下播种这些数据?看起来种子应该是一种特殊情况,允许在不允许的情况下进行质量分配。
答案 0 :(得分:1)
attr_accessible
指定应始终对质量分配开放的属性列表,因此,如果您只想打开这些属性以进行种子设定,那么这可能不是您想要的。
您可以在种子文件中执行的一件事是为每个属性使用setter方法。例如:
admin = User.new do |u|
u.name = "Foo"
u.admin = true
end
admin.save!