使用Rails查找最后一天最喜欢的帖子

时间:2013-04-06 23:53:56

标签: ruby-on-rails database ruby-on-rails-3

我正在使用Rails创建一个应用程序,其中有些帖子可供用户喜欢。我为喜欢的人创建了一个不同的表,所以我有以下结构。

POSTS -> id
      -> title
      -> text
         ...

       belongs_to :user
       has_many :likes

USERS -> id
      -> email
      -> name
         ...

        has_many :posts
        has_many :likes

LIKES -> id
      -> post_id
      -> user_id
         ...

        belongs_to :user

现在,在主页中,我想显示过去24小时内最受欢迎的帖子,按照他们有多少喜欢排序。我也使用Kaminari宝石为我的Post模型提供分页。

那么,我应该用什么来获取包含这些参数的帖子?

def popular
    @posts = ?
end

1 个答案:

答案 0 :(得分:1)

我这台计算机上目前没有我的rails env,但试着玩这个:

@posts = Post.joins("LEFT OUTER JOIN Likes ON likes.post_id = posts.id 
                     AND likes.created_at >= DATETIME('now', '-1 day')")
                    .group("posts.id").order("COUNT(likes.id) DESC")