问题描述
|
Rails 3.1(RC4)和范围内的质量分配如何期望我们在加载数据列表时使用seeds.rb。
例如。我通常有这样的东西:
City.create([
{ :name => \'Chicago\' },{ :name => \'copenhagen\' },...
])
创建超过100个城市。由于“城市”模型的作用域分配为ѭ1,因此这不再起作用。
据我所知,.create()
方法不允许我们抛出in1ѭ。
只有.new()
和.update_attributes()
允许我们使用:as => :admin
进行此操作。
因此,执行类似(如下)的操作很麻烦(特别是对于100多个记录):
city1 = City.new({ :name => \'Chicago\' },:as => :admin)
city1.save
city2 = City.new({ :name => \'copenhagen\' },:as => :admin)
city2.save
有什么想法吗?
解决方法
您可以执行以下操作:
City.create([
{ :name => \'Chicago\' },{ :name => \'Copenhagen\' },...
],:without_protection => true)
这完全覆盖了质量分配保护-因此请确保仅在种子中使用此保护。