2010-08-02 11 views
1

두 가지 모델을 m-to-m 관계로 연결하고 싶습니다. 그러나 관계에 날짜 나 만기일 또는 날짜와 같은 자체 데이터가 있어야합니다. 그게 뭔가 ...레일의 다 대다 관계

사용자와 그룹 모두 has_many X, :through Y 관계가있는 사용자, 그룹 및 일부 UsersInGroups 개체가 있다고 가정합니다. UsersInGroups belongs_to 사용자 및 그룹뿐만 아니라 사용자가 그룹에 가입했을 때를 나타내는 join_date도 있습니다.

그래서 self.groups.A을 사용하여 사용자로부터 그룹 변수를 가져올 수 있으며 그 반대로도 join_date 변수에서 어떻게해야합니까?

답변

1

many to many 관계에서 사용자가 많은 그룹을 가질 수 있고 aUser.user_in_groups를 수행하면 그룹의 배열 (이를 나타내는 모델 클래스의 인스턴스가됩니다)이 리턴됩니다. 각각에 대해 반복하고 각각에 대해 join_date를 얻거나 배열에 인덱싱하여 배열을 만들 수 있습니다. aUser.user_in_groups [0] .join_date

가입 날짜 또는 기타 일정을 원한다면 Ruby는 메소드를 수집합니다.

반복 :

aUser.users_in_groups.each do |group| 
    group.join_date 
end 
+0

수집 내가 감사, 무엇을 찾고 있어요 거의입니다! 한 가지 더 - 사용자와 그룹이 있고 그 둘에서 가입 날짜를 찾고 싶습니다. –

+0

사용자 그룹이 두 모델에 모두 속해 있기 때문에 각각에 대해 "users_in_groups"를 호출하고 해당 객체의 배열을 가져올 수 있습니다.이 배열에는 모두 join_date가 있습니다. –

+0

그래서,': user_id => aUser.id, : group_id => aGroup.id'라는 제약 조건을 가진 UsersInGroups를 찾으십니까? 그것은 작동 좋아, 고마워 :) –