我对rails和sql都比较陌生。我在生产中使用 postgres。
我有一个Like
模型,通过多态性,它具有属性likeable_type
,likeable_id
这就是我的Photo
模型中的项目如何被用户“喜欢”的方式。我也可以通过类似的对象访问照片,就像like.likeable
当喜欢的对象具有Photo
aslikeable_type
和照片的 id 一样时likeable_id
。
我的问题:我希望能够获得过去 24 小时内最喜欢的照片列表,最喜欢的一张在顶部,最不喜欢的一张在底部。我该怎么做呢?
到目前为止,我知道我的代码应该类似于
likes = Like.find(:all, :conditions => { :created_at => 1.days.ago.utc...Time.now.utc, :likeable_type => "Photo" })
likes = likes.group( --- something here --- , SUM( --- something here --- ))
但我不太能弄清楚正确的语法应该是什么。
任何帮助将不胜感激!