Ruby on rails Rails如何从多个表中进行选择

Ruby on rails Rails如何从多个表中进行选择,ruby-on-rails,join,associations,Ruby On Rails,Join,Associations,我是Ruby新手,所以我不知道如何通过连接表选择数据。我的数据库有3个表:用户,角色,和客户组织 users(id,email) client_organizations(id,name) roles(id,user_id,client_organization_id,role) 我想显示如下数据: User_Email Role RoleA for [ClientA] user1@gmail.

我是Ruby新手,所以我不知道如何通过连接表选择数据。我的数据库有3个表:
用户
角色
,和
客户组织

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

假设模型配置正确,您可以使用关联。这绝不是优化的,而是简单地展示逻辑。您将希望加载关联以进行数据库优化

控制器

@users = User.all
看法


电子邮件角色


这确实是一种最基本的东西,最好通过阅读一些教程或书籍来学习,而不是让别人为你编写代码。检查rails标签上的信息以获取资源。感谢您的代码,因为每个用户都有许多角色,我想要按客户组织名称[A..Z]排序的结果。您可以做相反的操作,列出每个组织、他们的角色以及用户。按组织名称排序。我指的是我上面提到的结果,例如,组织名称与1个用户订单A..Z关联user1@gmail.com有3个组织:M、A、F。我想要结果:user1@gmail.comA,M,F.和其他用户的结果相似。非常感谢
<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>