2011-10-11 75 views
0

到HAS_ONE多態性這是一個後續行動這樣一個問題:Rails 3.1 Unable to create with has_one :polymorphic model from rails console的Rails 3.1加入項目通過控制檯

我想知道如何使用語法加(如果可能):

mi = MenuItem.new 
mi.name = "Julie's Mac & Cheese" 
mi.price << Price.new 
mi.save 

我得到出現以下錯誤:

ruby-1.9.2-p290 :009 > mi.price << Price.new 
Price Load (0.2ms) SELECT "prices".* FROM "prices" WHERE "prices"."pricable_id" = 6 AND "prices"."pricable_type" = 'MenuItem' LIMIT 1 
NoMethodError: You have a nil object when you didn't expect it! 
You might have expected an instance of Array. 
The error occurred while evaluating nil. 

mi.price_attributes也沒有工作。

謝謝。

+1

也許''<<期待'mi.price'是一個數組。相反,分配:「mi.price = Price.new」。 – Zabba

+0

你的意思是'mi.price'而不是'm.price'嗎? – bricker

+0

其實我去了另一個問題,看到你正在使用'has_one',所以是的,你需要做'mi.price = Price.new'。 – bricker

回答

0

每布里克以上,因爲它涉及到HAS_ONE:

mi.price = Price.new