레일 2.3.5를 사용하고 있습니다.하나 이상의 덧글을 게시 한 사용자 만 찾는 방법
이것은 일반적인 경우입니다. 테이블은 users, comments, user_comments입니다. 상태가 '활성'이고 하나 이상의 설명을 게시 한 모든 사용자를 찾아야합니다.
댓글 테이블에 외래 키가있을 수 있지만 이것이 고의적 인 예입니다. 이 테이블에는 두 명의 사용자가 있습니다. 두 가지 의견이 있습니다. 두 주석은 모두 첫 번째 사용자가 게시합니다. 내가
User.with_atleast_one_comment.with_active_status
을 실행하면
named_scope :with_atleast_one_comment, lambda { {
:joins => 'inner join user_comments on users.id = user_comments.user_id ' } }
named_scope :with_active_status, {:conditions => {:status => 'active'} }
나는 두 개의 레코드를 얻을. 두 사람의 의견이 한 사용자에 의해 게시되기 때문에 한 사람 만 원합니다.
수정 사항
하면 ArgumentError가 있어야합니다 : 알 수없는 키 (들) : 내가 할 경우 UNIQ을 : uniq => true, : 조인 => '내부 조인 user_comments on users.id = user_comments.user_id'}} –
-1 : uniq은 명명 된 범위의 유효한 옵션이 아닙니다. – EmFi