2011-11-27 6 views
0

모델이 있습니다. 이슈에는 조인 모델을 통한 주석과 투표가 있습니다. 내가 좋아하는 뭔가를 시도 할 경우활성 레코드를 조인 모델 값으로 정렬하려면 어떻게합니까?

@issues = Issue.limit(10).find(:all, :order => "COMMENT_COUNT DESC") 

: 내 문제 # 인덱스보기에서, 나는 그래서 의견과 투표의 숫자로 질의 결과를 정렬 할 수 있도록하고 싶습니다

@issues = Issue.limit(10).find(:all, :order => "issue.comments.count DESC") 

그것을 작동하지 않습니다. 아마도 이슈 모델에 의견과 투표 수를 추가 할 수는 있지만 그 일을 수행하는 가장 좋은 방법은 무엇인지 확실하지 않으며 그것이 최선의 방법이라고 생각지 않습니다.

어떻게해야합니까?

답변

0

조금 더 복잡합니다. 이것은 약간 더 SQL을 필요로합니다. 문제에 대한 쿼리 테이블에 주석 테이블을 포함시켜야합니다. 그런 다음 문제 ID별로 결과를 그룹화하여 문제 당 의견 수를 가져와야합니다. 이 같은

뭔가 작업을해야합니다 :이 @joran

@issues = Issue.find(:all, :order => "count(comments.id) DESC"), :joins =>"inner join comments on comments.issue_id = issues.id", :group =>"issues.id",:limit=>"10") 
+0

가 잘 작동합니다. 그러나 0 개의 댓글이있는 문제는 포함되어 있지 않습니다. 1 개 이상의 코멘트가있는 10 개의 이슈가 없으면 10 개의 모든 코멘트 제한을 나열해야하며 0 개의 코멘트가있는 문제도 포함해야합니다. 어떻게 포함합니까? –

+1

"내부 조인"대신 "왼쪽 ​​조인"을 사용하여 주석이 0 인 문제를 포함시킵니다. –

+0

@MatthewBerman 나는 실수로 나를 핑 소리 낸 것 같아요. 클레멘스의 대답 만 편집했습니다. :) – joran

관련 문제