0

ユーザー、従業員、連絡先の 3 つのテーブルがあります。従業員と連絡先には、関連付けられたユーザーを指す外部キーがあります。従業員の所属先:user 連絡先の所属先:user ユーザーには多くの従業員、連絡先があります

しかし、ユーザー インデックス ビューに従業員名または連絡先名を一覧表示したいと考えています。

find_by_sql ステートメントを使用する必要がありますか?

ありがとう、デイブ

4

2 に答える 2

0

インデックス ビューで、

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

唯一の欠点は、ユーザーのループですべてのユーザーの従業員とすべてのユーザーの連絡先に対してクエリを実行することです。ページの読み込みがかなり速い場合は、上記のようにコーディングします。コードがより明確になるためです。

于 2012-05-13T00:20:35.087 に答える
0

関連付けはbelongs_toすでに設定されているので、has_one従業員と連絡先の User クラスに関連付けを追加してから、@user.employee.nameまたはを実行できます@user.contact.name

あなたは間違いなくこれを必要としませんfind_by_sql

于 2012-05-12T23:31:05.517 に答える