ユーザー、従業員、連絡先の 3 つのテーブルがあります。従業員と連絡先には、関連付けられたユーザーを指す外部キーがあります。従業員の所属先:user 連絡先の所属先:user ユーザーには多くの従業員、連絡先があります
しかし、ユーザー インデックス ビューに従業員名または連絡先名を一覧表示したいと考えています。
find_by_sql ステートメントを使用する必要がありますか?
ありがとう、デイブ
ユーザー、従業員、連絡先の 3 つのテーブルがあります。従業員と連絡先には、関連付けられたユーザーを指す外部キーがあります。従業員の所属先:user 連絡先の所属先:user ユーザーには多くの従業員、連絡先があります
しかし、ユーザー インデックス ビューに従業員名または連絡先名を一覧表示したいと考えています。
find_by_sql ステートメントを使用する必要がありますか?
ありがとう、デイブ
インデックス ビューで、
<table>
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.employees.map{ |empl| empl.name }.join(", ") %></td>
<td><%= user.contacts.map{ |contact| contact.name }.join(", ") %></td>
</tr>
<% end %>
</table>
唯一の欠点は、ユーザーのループですべてのユーザーの従業員とすべてのユーザーの連絡先に対してクエリを実行することです。ページの読み込みがかなり速い場合は、上記のようにコーディングします。コードがより明確になるためです。
関連付けはbelongs_to
すでに設定されているので、has_one
従業員と連絡先の User クラスに関連付けを追加してから、@user.employee.name
またはを実行できます@user.contact.name
。
あなたは間違いなくこれを必要としませんfind_by_sql
。