0

我有以下模型

邮政:

has_many :comments

评论:

belongs_to :post

和一个控制器pages,其中包含以下代码。

def home
    @posts = Post.includes(:comments)
    respond_to do |format|
        format.html
    end
end

所以说如果我有 3 个帖子 P1、P2、P3;home最初在页面上以相同的顺序呈现。稍后,如果 P2 被评论并且我刷新页面,则顺序应该是 P2、P1、P3。因此,每当帖子被评论时,它都应该出现在顶部。所有的帖子都应该按照他们被评论的时间降序排列。我怎样才能做到这一点?

我的尝试-我尝试的效率非常低,绝对不是一个好习惯。我从评论中按降序获得唯一的 post_ids,并使用 post_ids 获取帖子。

我确信 rails 提供了最好的方法。帮助高度赞赏。谢谢。

4

1 回答 1

3

尝试这个,

@posts = Post.includes(:comments).order("comments.created_at desc")
于 2012-08-24T09:52:06.213 回答