4

Rails 3.1(RC4)和作用域批量分配如何期望我們在加載數據列表時使用seeds.rb。如何使用作用域批量分配來種植Rails 3.1應用程序

例如。我通常有這樣的東西:

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 

對這個有什麼想法?

回答

12

你可以做到以下幾點:

City.create([ 
    { :name => 'Chicago' }, 
    { :name => 'Copenhagen' }, 
    ... 
], :without_protection => true) 

這完全覆蓋的質量分配保障 - 所以一定要只用這說的種子。

相關問題