2012-09-11 50 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文档之后,它对我来说仍然很奇怪。 –