2011-05-11 67 views
0

Am在一组记录中循环,并希望同时显示模型的相关数据。 但是,当试图显示相关数据时,我得到一条错误消息循环显示模型的相关数据

谁能告诉我下面的代码有什么问题?

<% @subs.each do |submission| %> 
    <%= submission.SUB_OID %> 
    <%= submission.SUB_ASSAY_TYPE %> 
    <%= submission.author.AUT_NAME %> -- am getting the error because of this line 

<% end %> 

型号: 子HAS_ONE作者 作者belongs_to的子

如果我删除此行<%= submission.author.AUT_NAME %>,正确地显示提交的名单,但是当我有3号线,我得到的错误“取消定义方法适用于AUT_NAME'。

我不明白在哪里发现错误。

是一个新手,将是提供

+0

作者模型是否具有“AUT_NAME”属性或方法? – McStretch 2011-05-11 17:37:21

+0

AUT_NAME是属性 – tanya 2011-05-11 18:13:42

回答

0

终于找到了解决办法。我包括以下if条件 -

<如果%submission.author%> <%= submission.author.AUT_NAME%> <%结束%>

之所以作者姓名不能显示是因为并非所有提交在authors表中都有关联的条目。

+0

在最近的Rails中,您可以使用方法'try':'submission.author.try(:AUT_NAME)',如果作者为零,则不会引发异常而返回'nil'。代码可能更具可读性。 – Arsen7 2011-06-02 13:37:48

+0

非常感谢Arsen的建议,尝试方法确实似乎是一个好主意 – tanya 2011-06-06 10:57:33

1

任何建议感谢你要么有author名为AUT_NAME没有现场/法或者你们的关系是错误的。你能否检查submission.author是否为零,并确保AUT_NAME存在?