0

Ruby は初めてなので、テーブルを結合してデータを選択する方法がわかりません。users私のデータベースには、 、roles、およびの3 つのテーブルがあり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では、上記のようにデータベースからデータを取得するにはどうすればよいですか?

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 に答える