2010-12-04 3 views
1

사이 NOT EQUAL 조건 나는 세 개의 테이블이 : 사용자, User_Interest, 그리고 관심을ROR : 두 테이블

어떻게 사용자 중 하나가없는이자 이름을 얻을 수 있을까?

은 (난 이미 그들 모두의 모델을 설정했습니다.) 당신의 친절하게 도움을

감사합니다.

+0

모델 연결에 대한 레일스 가이드 : 레일 3 : http://guides.rubyonrails.org/association_basics.html 레일 2.3.x : http://guides.rubyonrails.org/v2.3.8/ association_basics.html – Swanand

답변

0

사용자의 클래스 메서드 또는 특정 사용자의 인스턴스 메서드로 만들 수 있습니다. 클래스 메소드의 경우 다음을 시도하십시오.

def self.missing_interests(user) 
    difference = Interest.all - user.interests 
    difference.map { |d| d.name } 
end 

User.missing_interests(some_user)으로 전화하십시오. 예를 들어

def missing_interests 
    difference = Interest.all - interests 
    difference.map { |d| d.name } 
end 

을 시도하고 missing = some_user.missing_interests으로 전화하십시오.

사용자에 대해 interests 연관에 포함되지 않은 모든 관심사의 이름을 가진 배열을 반환해야합니다.

+0

감사합니다. 작동하지만 조금 변경됩니다. 나는 "@missing_interests = Interest.all - User.find (session [: uid]). 관심사"를 컨트롤러에 사용한다. – Niao