Rails 3.1(RC4)和作用域质量分配如何在加载数据列表时使用seeds.rb。
例如。我通常有类似的东西:
City.create([
{ :name => 'Chicago' },
{ :name => 'Copenhagen' },
...
])
创造了100多个城市。由于City模型具有范围的质量分配:as => :admin
,因此不再起作用。
据我所知,.create()
方法不允许我们投入:as => :admin
。
只有.new()
和.update_attributes()
允许我们使用:as => :admin
执行此操作。
所以做(像下面这样的)很麻烦(特别是对于100多条记录):
city1 = City.new({ :name => 'Chicago' }, :as => :admin)
city1.save
city2 = City.new({ :name => 'Copenhagen' }, :as => :admin)
city2.save
对此有何想法?
答案 0 :(得分:12)
您可以执行以下操作:
City.create([
{ :name => 'Chicago' },
{ :name => 'Copenhagen' },
...
], :without_protection => true)
这完全取代了质量分配保护 - 所以一定要在种子中使用它。