2016-06-15 22 views
1

最も嫌われたニュースを取得するために適切なクエリを書きたい。 現在のクエリ:好きテーブルのboolean属性による結果の順序が偽である

@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 
関連する問題