2012-09-11 72 views
0

社區,我需要你的幫助。這是一個非常簡單的問題,但我無法弄清楚什麼是錯的。Rails:has_one關聯錯誤?

我有兩個模型,產品模型和條件模型。產品只能有一個條件,所以我在兩者之間設置了一對多關聯。條件包含固定記錄(例如好,壞,損壞)

Product.rb

attr_accessible :condition_id 
has_one :condition 

Condition.rb

belongs_to :product 

我對我的產品表的外鍵condition_id 。 在我的產品形式,通過我的條件循環,並設置ID:當

_form.html.erb(產品)

<%= f.select :condition_id, Condition.all.collect {|x| [x.name, x.id]}, {} %> 

我可以看到ID在控制檯中,我提交表格。但我無法檢索給定條件的值。 在我的產品展示頁面,我嘗試

<%= @product.condition.name %> 

,但它給了我一個「爲無未定義的方法`名」:NilClass」的錯誤。在控制檯中嘗試時也會發生這種情況。

我在這裏錯過了什麼?

謝謝大家!

回答

0

對不起,回答我自己的問題。 看來,我混合匹配的協會。

所以一個產品belongs_to:條件和條件has_many:產品工作正常。

但是,對於我產品has_one:條件和條件belongs_to:產品聽起來更加冗長。

+0

我有完全相同的問題,我不明白爲什麼。 協會的倒置對我來說並不是一個解決方案,是的,但它在我的情況下絕對不是冗長的。你明白你爲什麼要這麼做嗎? 謝謝 – gabriel

+0

不,我沒找出原因。在諮詢了api文檔之後,它對我來說仍然很奇怪。 –