【发布时间】:2012-05-13 08:20:35
【问题描述】:
我有一个 3 表 - 用户、员工、联系人。 员工和联系人具有指向关联用户的外键。 员工属于_to:用户 联系belongs_to :user 用户有很多员工、联系人
但是,我想在用户索引视图中列出员工姓名或联系人姓名。
我需要使用 find_by_sql 语句吗?
谢谢, 戴夫
【问题讨论】:
标签: ruby-on-rails
我有一个 3 表 - 用户、员工、联系人。 员工和联系人具有指向关联用户的外键。 员工属于_to:用户 联系belongs_to :user 用户有很多员工、联系人
但是,我想在用户索引视图中列出员工姓名或联系人姓名。
我需要使用 find_by_sql 语句吗?
谢谢, 戴夫
【问题讨论】:
标签: ruby-on-rails
您已经设置了belongs_to 关联,因此您可以在您的用户类中为员工和联系人添加has_one 关联,然后您可以执行@user.employee.name 或@user.contact.name。
你绝对不需要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>
唯一的缺点是它将在用户的循环中查询所有用户的员工和所有用户的联系人。如果页面加载速度相当快,请按照上面的代码进行编码,因为这样的代码更清晰。
【讨论】: