0

我是 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 中,如何从上面的数据库中获取数据?

4

1 回答 1

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>
于 2013-10-03T12:34:53.183 回答