2012-03-13 74 views
0

我在客戶端模式下DEF:在另一個模型的顯示頁面上顯示一個模型的屬性?

def cli_full_name 
    [f_name, mi, l_name].join(' ') 
end 

我想cli_full_name在合同顯示頁顯示。這裏是我的應用程序/視圖/合同/ show.html.haml頁:

- provide(:title, @contract.authnum) 
%h3 
    = @contract.authnum 
    %span1 
    = @client.cli_full_name 

我得到一個錯誤, 「未定義的方法」 cli_full_name。

該協會是合同有*的has_many:客戶:通過=>:clientlines *

所以我增加了一個嵌套的路線到我的路線文件心想這下把事情的工作方式如下:

resources :contracts do 
    resources :clients 
end 

沒有運氣。

是否有人可以幫助我瞭解如何獲得cli_full_name顯示合同顯示頁上?

謝謝。

更新

,如果你跑過來給客戶展示頁它的工作原理,但我想它的合同顯示頁面上:)

即使我改變我的嵌套的路線通過了Jamis提出的格式巴克:

http://weblog.jamisbuck.org/2007/2/5/nesting-resources 

我仍然無法獲得cli_full_name顯示在合同顯示頁面上。 也許我不明白嵌套的屬性和嵌套的路線?

幫助?

+0

快速注意許多客戶端:它確實有助於遵循用於命名事物的Rails約定。而不是'cli_full_name',只是'full_name'更好,因爲它總是被客戶端所限制。可以拼寫出f_name,mi和l_name(例如,first_name,initial,last_name)......以及在你的客戶端模型中創建一個full_name方法,該方法可以從您擁有的組件中創建一個全名! Rails完全遵循以下約定來使一切變得更加簡單。 – 2012-03-14 00:12:18

+0

Thnaks @tharrison ...會做。 – thomasvermaak 2012-03-27 20:50:02

回答

1

因爲你的模型規定,合同有你需要訪問他們這樣

@contract.clients 

,然後遍歷它們類似於

- @contract.clients.each do |client| 
    = client.cli_full_name 
+0

感謝NullRef ....我將上面的代碼添加到我的合同顯示頁面嗎?如果是,則返回nilNilClass – thomasvermaak 2012-03-13 19:33:47

+0

的「未定義方法」客戶端再試一次。我有一個錯字。 '@合同'不是'@合同'。對不起 – NullRef 2012-03-13 19:40:20

+0

再次感謝......我有合同而不是合同。 – thomasvermaak 2012-03-13 19:42:50

相關問題