Rails 3.1 ассоциации? - PullRequest
       8

Rails 3.1 ассоциации?

0 голосов
/ 16 октября 2011

У меня есть приложение Rails 3.1.1 со следующими моделями:

Company
Member

Две модели имеют следующие ассоциации:

Company - has_many :members
Member  - belongs_to :company

При добавлении участников я могу войти в компаниюИдентификационный номер и запись успешно связаны, я могу просматривать участников через компанию и т. Д.

Когда я работаю над представлением участников, я хотел бы «узнать» подробности о компании.

В настоящее время у меня есть следующее в представлении представления:

<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>

Как мне получить данные из соответствующей компании?Например, модель компании имеет два поля (широта и долгота).

Ответы [ 2 ]

1 голос
/ 16 октября 2011

Ваш цикл должен выглядеть следующим образом:

<% @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, поскольку они обращаются к переменной |member|, которая передается в блок.

0 голосов
/ 16 октября 2011
@member.company.latitude

и так далее. Пожалуйста, дайте мне знать, если вы хотите получить разъяснения или дополнительную информацию.

...