2011-10-16 91 views
0

我有以下型號一個Rails 3.1.1應用:Rails 3.1關聯?

Company 
Member 

這兩種型號有以下關聯:

Company - has_many :members 
Member - belongs_to :company 

當加入的成員,我可以進入公司的ID號和記錄鏈接成功後,我可以通過公司查找成員等。

當我在會員秀視圖上工作時,我想'拉'公司的詳細信息。

目前我有在表演視圖:

<h1>Listing members</h1> 

<table> 
    <tr> 
    <th>Name</th> 
    <th>Mobile</th> 
    <th>Email</th> 
    <th>Qualifications</th> 
    <th>Membership</th> 
    <th>Company</th> 
    <th></th> 
    <th></th> 
    <th></th> 
    </tr> 

<% @members.each do |member| %> 
    <tr> 
    <td><%= member.name %></td> 
    <td><%= member.mobile %></td> 
    <td><%= member.email %></td> 
    <td><%= member.qualifications %></td> 
    <td><%= member.membership %></td> 
    <td><%= @member.company.company_id %></td> 
    <td><%= link_to 'Show', member %></td> 
    <td><%= link_to 'Edit', edit_member_path(member) %></td> 
    <td><%= link_to 'Destroy', member, confirm: 'Are you sure?', method: :delete %></td> 
    </tr> 
<% end %> 
</table> 

我如何去從相關公司在外地拉?例如,公司模型有兩個字段(經度和緯度)。

+0

有什麼我不明白在這裏,會不會'<%= member.company.latitude%>工作? –

+0

這會導致'#:0x99a8a40>' – dannymcc

+1

'的未定義局部變量或方法'成員'是否放在成員循環中(例如'<%= member.membership%>'之下) )? –

回答

1

你的循環應該是這樣的:

<% @members.each do |member| %> 
    <tr> 
    <td><%= member.name %></td> 
    <td><%= member.mobile %></td> 
    <td><%= member.email %></td> 
    <td><%= member.qualifications %></td> 
    <td><%= member.membership %></td> 
    <td><%= member.company_id %></td> 
    <td><%= member.company.latitude %></td> 
    <td><%= link_to member.company.name, member.company %></td> 
    <td><%= link_to 'Show', member %></td> 
    <td><%= link_to 'Edit', edit_member_path(member) %></td> 
    <td><%= link_to 'Destroy', member, confirm: 'Are you sure?', method: :delete %></td> 
    </tr> 
<% end %> 

company_id是在Member模型定義的,你無法通過member.company.company_id訪問它。要訪問相關公司模型的字段,請使用member.company.my_field

這些只會在成員循環中起作用,因爲它們訪問傳遞給塊的|member|變量。

+0

感謝您的解釋!完美工作。我不明白爲什麼在鏈接中不要用''來包裝鏈接名稱?僅當你想要靜態元素時才這樣嗎?例如; <%= link_to'Company',member.company%> – dannymcc

+0

@dannymcc是的,你有這個權利。從模型屬性或變量中獲取鏈接名稱時,只有在傳遞硬編碼字符串時纔會引用引號。 –

+0

太好了,再次感謝您的解釋! – dannymcc

0

等等。請讓我知道,如果你想澄清或更多的信息。

+0

我似乎得到了'未定義的方法'公司的錯誤:NilClass' – dannymcc

+1

如果您在示例的循環中使用它,它應該是'member'。而你的下一個錯誤將是'未定義方法'company_id'爲公司....',並解決你需要改變這一行:'@ member.company.company_id'到別的東西或刪除它。然後閱讀一些[Ruby/Rails指南](http://guides.rubyonrails.org/getting_started.html)...這是基本的東西。 – bricker