2013-04-22 189 views
0

我的应用程序中存在嵌套模型的问题。我无法获得显示的值。我知道我必须这样做:@ modelname.attribute(view),但它似乎不工作。这就是为什么我开始在控制台中查看,如果我在控制器中做的每件事都是正确的。 一切似乎都没问题。但是我有一个问题,在控制台中,当你这样做(例如):Ruby on rails console

@modelname = Modelname.find(an id) 

它给你这样相应的对象:

=>#< Modelname, id: x, other attributes > 

,当我试图找到我我得到这个:

=>[#< Modelname, id: x, other attributes >] 

为什么?有什么区别,这可能是我的问题?

+4

“找到我的其他物体”是什么意思?通过ID查找返回单个对象。即使没有关联记录或单个关联记录,has_many关联也会返回一个数组。但我们看不到你在做什么,你的模型是什么样的,等等。 – 2013-04-22 15:47:55

+0

所以我在我的数据库和一张卡兹表中有一张病人表。 katz表具有patient_id。现在我想要的是将katz对象的所有值放入hiddenfields中。和用于我使用'<%= hidden_​​field_tag“卡茨[洗]”,@ katz.wash%>'的洗涤是卡茨对象的属性,但我总是得到相同的错误:NoMethodError,未定义的方法洗涤。对于我的社团我有这样的:'的has_many:katz'and'accepts_nested_attributes_for:katz'in patient.rb和katz.rb我:'belongs_to的:patient' – 2013-04-23 06:53:13

+0

编辑的问题,而不是临时抱佛脚所有到评论的。包括确切的错误。 – 2013-04-23 09:49:58

回答

0

第二次-in你得到一个数组的控制台 - 。这是不同的。至于为什么,我们不知道你写的,找到的模式,但是你必须调用ModelName.where或一个FO ActiveRecord的查询API中的其他方法返回一个数组(一个ActiveRecord ::关系要准确)

+0

所以我在我的数据库中有一张病人表和一张卡兹表。 katz表具有patient_id。现在我想要的是将katz对象的所有值放入hiddenfields中。和用于我使用<%= hidden_​​field_tag“卡茨[洗]”,@ katz.wash%>的洗涤是卡茨对象的属性,但我总是得到相同的错误:NoMethodError,未定义的方法洗涤。对于我的社团我有这样的:的has_many:katzand accepts_nested_attributes_for:katzin patient.rb和katz.rb我:belongs_to的:病人 – 2013-04-23 07:21:38

+0

我建议你张贴这个新问题。无论如何,has_many中的符号必须是复数(katz(s)?)。这可能是你的问题的原因。 – boulder 2013-04-23 11:13:38