我在客户端模型中有以下def:
def cli_full_name
[f_name, mi, l_name].join(' ')
end
我希望cli_full_name显示在合约显示页面中。这是我的app / views / contracts / show.html.haml页面:
- provide(:title, @contract.authnum)
%h3
= @contract.authnum
%span1
= @client.cli_full_name
我收到错误,“未定义的方法”cli_full_name。
该协会是合约有* has_many:clients:through => :clientlines *
所以我在我的路径文件中添加了一个嵌套路由,认为这样可以按照以下方式工作:
resources :contracts do
resources :clients
end
没有运气。
有人可以帮我理解如何让cli_full_name显示在合约展示页面上吗?
感谢。
更新
如果你跑到客户端节目页面但我想在合约节目页面上看它是有效的:)
即使我将嵌套路线更改为Jamis Buck提出的格式:
http://weblog.jamisbuck.org/2007/2/5/nesting-resources
我仍然无法在合约显示页面上显示cli_full_name。 也许我不了解嵌套属性和嵌套路由?
帮助?
答案 0 :(得分:1)
因为您的模型指定合同有许多客户,您需要像这样访问它们
@contract.clients
然后循环遍历它们
- @contract.clients.each do |client|
= client.cli_full_name