2011-12-21 7 views
1

を作成したり保存する。これは、作業を行います。シード - 動作していない

result.each do |f| 
    rt=ResTypes.new #(:type=>f['type']) 
    rt.type=f['type'] 
    rt.save() 
end 

これは動作しません:

result.each do |f| 
    ResTypes.create(:type => f['type']) 
end 

もこれを行います:

result.each do |f| 
    rt=ResTypes.new(:type => f['type']) 
    rt.save() 
end 

なぜだろう2番目または3番目の方法?

THX

編集#1

これは動作しません:

t=IO.read('db/seed-data/list-types.json') 
lt_results=JSON.parse(t) 
lt_results.each do |i| 
    l=ListType.create(i) 
end 

答えて

0

は、その属性が大量割り当てることができないとしなければならないかもしれません。それ以外は動作するはずです。

+0

権利を、私は編集のように動作するように思えるのアレイで作成し、他の種を推測します。それはうまくいくはずですか? – timpone

0

Maletorの示唆を確認できます。type属性は、デフォルトでは大量割り当てできません。これは、Active Recordでinheritance_columnに設定されているため、単一テーブルの継承に使用されるためです。フィールドは通常、STIによって自動的に設定されます。

あなたがそれを割り当てることができますので、それを作るあなたのモデルでこれを設定するには:

class ResTypes < ActiveRecord::Base 
    self.inheritance_column = nil 
end 
関連する問題