Rails attr_accessible只用于seed.rb?

时间:2012-06-22 19:49:27

标签: ruby-on-rails ruby attr-accessible

我通过PragProg教授自己的Rails(显然已经过时了 - 我正在使用Rails 3.2.3) Rails for PHP Developers 。我发现了这本书没有谈到的seed.rb文件。我试图为很多事情建立适当的种子条目,它给了我can't mass-assign protected attributes

经过一堆搜索,看来我唯一的选择是通过attr_accessible打开这些内容,或者关闭阻止批量分配的默认功能。但我希望保留设置所暗示的安全性。我不希望这些条目在播种后进行编辑。我只需要先将它们放入数据库中。

我在这里看不到什么?如何在不关闭保护的情况下播种这些数据?看起来种子应该是一种特殊情况,允许在不允许的情况下进行质量分配。

1 个答案:

答案 0 :(得分:1)

attr_accessible指定应始终对质量分配开放的属性列表,因此,如果您只想打开这些属性以进行种子设定,那么这可能不是您想要的。

您可以在种子文件中执行的一件事是为每个属性使用setter方法。例如:

admin = User.new do |u|
  u.name = "Foo"
  u.admin = true
end

admin.save!