通过布尔属性排序结果等于false

时间:2016-06-15 20:00:42

标签: ruby-on-rails ruby

我想写出正确的查询来获取最讨厌的新闻。 当前查询:

@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

我想获得新闻,大多数人都喜欢错误。 问题是,该查询并不关心使用false值排序喜欢并返回最喜欢的新闻。 它以3个正面(大多数)喜欢和1个负数返回新闻。我有数据库新闻2负(大多数)。 怎么写得正确?

1 个答案:

答案 0 :(得分:1)

我会尝试这样的事情:

@most_hated_news = News.joins(:likes)
                       .where('likes.like = ?', false)
                       .group('news.id')
                       .order('COUNT(likes.id) DESC').first
相关问题