如何使用范围分配的质量分配为Rails 3.1应用播种

问题描述

| 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) 
这完全覆盖了质量分配保护-因此请确保仅在种子中使用此保护。