2013-09-29 2 views
0

의 모든 서브 모델 나는 내가 필요로하는 사용자가 액세스 할 수있는 모든 주소의 배열이액세스는 액티브 관계

User.groups.members.addresses 

같은 것을 쓰고 싶어요. 사용자가 두 그룹에있는 경우, 각 그룹은 내가 원하는 고유 주소이 명 독특한 회원이 레일에 루비를 사용하여 4 개 주소

의 배열 4

답변

1

당신은 당신의 주소 모델에 범위를 추가 할 수 있어야합니다, 당신에게 거기에 조인을 추가하기 만하면됩니다. 이것을 테스트하지는 않았지만 올바른 방향이어야합니다.

class Address 
    scope :by_user, -> user { joins(:member).joins(:group).where(user: {id: user.id})}} 
end 

사용 :

Address.by_user(@user) 
+0

흥미 롭. 어떻게 작동하는지 더 설명해 주시겠습니까? 조인에 관한 좋은 문서를 찾을 수없는 것 같습니다 –

+0

ActiveRecord가 사용하기 쉽게 만드는 SQL 개념입니다 : http://guides.rubyonrails.org/active_record_querying.html#joining-tables – Matt