Rails-如何从多个表中进行选择

时间:2013-10-03 10:55:16

标签: ruby-on-rails join associations

我是Ruby的新手,所以我不知道如何通过连接表选择数据。我的数据库有3个表:usersrolesclient_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中,如何从数据库中获取数据?

1 个答案:

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