RoR如何向后找到记录

时间:2012-05-12 23:25:16

标签: ruby-on-rails

我有一个3表 - 用户,员工,联系人。 员工和联系人具有指向关联用户的外键。 员工belongs_to:用户 联系belongs_to:用户 用户有很多员工,联系人

但是,我想在用户索引视图中列出员工姓名或联系人姓名。

我是否需要使用find_by_sql语句?

谢谢, 戴夫

2 个答案:

答案 0 :(得分:0)

您已经设置了belongs_to个关联,因此您可以在User类中为员工和联系人添加has_one关联,然后您可以@user.employee.name或{{1} }。

你绝对不需要@user.contact.name

答案 1 :(得分: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>

唯一的缺点是它将为用户的循环中的所有用户的员工和所有用户的联系人进行查询。如果页面加载速度相当快,请按上面的方式编写代码,因为代码更清晰。