我是Ruby的新手,所以我不知道如何通过连接表选择数据。我的数据库有3个表:users
,roles
和client_organizations
。
users(id,email)
client_organizations(id,name)
roles(id,user_id,client_organization_id,role)
我想显示这样的数据:
User_Email Role
RoleA for [ClientA]
user1@gmail.com RoleB for [ClientB]
RoleC for [ClientB]
user2@gmail.com RoleB for [ClientC]
在Ruby中,如何从数据库中获取数据?
答案 0 :(得分:0)
假设您的模型配置正确,您可以使用您的关联。这绝不是优化的,而是简单地布置以显示逻辑。您需要急切加载关联以进行数据库优化。
控制器
@users = User.all
视图
<table>
<tr><th>email</th><th>role</th></tr>
<% @users.each do |user| %>
<tr>
<td><%= user.email %></td>
<td>
<% user.roles.each do |role| %>
<%= "#{role.role} for [#{role.client_organization.name}]" %><br>
<% end %>
</td>
</tr>
<% end %>
</table>