2016-06-15 2 views
1

가장 싫어하는 뉴스를 얻기 위해 적절한 쿼리를 작성하고 싶습니다. 현재 쿼리 : 좋아하는 테이블의부울 속성에 의한 정렬 결과는 거짓 일 것입니다.

@most_hated_news = News.joins(:likes).where('likes.like = ?', false).order('likes.like DESC').first 

스키마 :

# Table name: likes 
# 
# id  :integer   not null, primary key 
# like  :boolean 
# person_id :integer   not null 
# news_id :integer   not null 

내가 뉴스를 원하는 대부분이 그와 동일한 거짓을 좋아한다. 문제는 해당 쿼리가 거짓 값으로 좋아요를 정렬하고 가장 긍정적 인 좋아하는 뉴스를 반환하지 않는다는 것입니다. 3 개의 긍정적 인 (대부분) 좋아요와 1 개의 부정적인 뉴스가 표시됩니다. 나는 데이터베이스 뉴스에 부정 (가장)이 2 개있다. 올바르게 쓰는 방법?

+1

귀하의 질문이 명확하지 않다. 다시 말해보십시오. –

답변

1

나는 이런 식으로 뭔가를 시도 할 것입니다 :

@most_hated_news = News.joins(:likes) 
         .where('likes.like = ?', false) 
         .group('news.id') 
         .order('COUNT(likes.id) DESC').first 
관련 문제