2013-10-03 5 views
0

Ruby를 처음 사용하므로 조인 테이블로 데이터를 선택하는 방법을 모르겠습니다. 데이터베이스에는 users, rolesclient_organizations의 3 개의 테이블이 있습니다. 내가 위에서처럼, 데이타베이스에서 데이터를 얻을 수있는 방법, 루비에서레일 - 여러 테이블에서 선택하는 방법

User_Email      Role 
          RoleA for [ClientA] 
[email protected]    RoleB for [ClientB] 
          RoleC for [ClientB] 

[email protected]    RoleB for [ClientC] 

:

users(id,email) 
client_organizations(id,name) 
roles(id,user_id,client_organization_id,role) 

이 같은 데이터를 표시하려면?

+0

이 정말 최고의 오히려 당신을 위해 코드를 작성하는 사람을 물어보다, 일부 자습서 또는 책을 읽고 알게 될 것이다 기본적인 것들의 종류이다. rails 태그의 정보에서 자원을 확인하십시오. – Matt

답변

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> 
+0

[# {role.client_organization.name}] "%>에 대한 <% ="# {role.role} "코드에서 각 사용자마다 많은 역할이 있으므로 client_organization [A. .Z] – chinh

+0

역순으로 각 조직, 역할 및 사용자를 나열 할 수 있습니다. 조직의 이름으로 주문하십시오. – kobaltz

+0

내가 위에서 언급 한 결과는 1 개의 사용자 주문 A..Z와 연관되어 있음을 나타냅니다. 예를 들어 [email protected]은 3 개의 조직 : M, A, F를가집니다. 나는 결과를 원한다 : [email protected] A, M, F. 그리고 다른 사용자와 비슷한 결과를 얻는다. – chinh

관련 문제