0

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

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

我在这里没有看到什么?如何在不关闭保护的情况下播种这些数据?似乎种子应该是一种特殊情况,允许在不允许的情况下进行大规模分配。

4

1 回答 1

1

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

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

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

admin.save!
于 2012-06-22T19:55:50.540 回答