我有2个型号。 Gif, GifStatistic
gif has_many :gif_statistics
GifStatistics
包含名为state
的列。它可以是like
或dislike
我想要实现的是查询gif,但是在highest count of likes
像(伪代码)
之类的东西Gif.joins(:gif_statistics).order(count(gif.gif_statistics.state))
我如何实现这一目标?
答案 0 :(得分:2)
尝试此查询。
Gif.joins(:gif_statistics).select("*, count(gif_statistics.state) as state_count").order("state_count desc")
我个人的建议是你在gif模型中创建两个新字段,这样你就可以在创建它时存储喜欢和不喜欢的计数,这样你就不必进行这样复杂的查询。放置计数器缓存可以提高速度。