2011-05-11 25 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存在?