-1

我正在使用 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 小时内最喜欢的帖子,按点赞数排序。我还使用为我的 Post 模型提供分页的 Kaminari gem。

那么,我应该使用什么来获取具有这些参数的帖子?

def popular
    @posts = ?
end
4

1 回答 1

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")
于 2013-04-07T00:14:10.930 回答