首先按照最新评论帖子的顺序对帖子进行排序

时间:2012-08-24 08:30:15

标签: ruby-on-rails sorting

我关注模型

发表:

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提供了最好的方法。高度赞赏。感谢。

1 个答案:

答案 0 :(得分:2)

试试这个,

@posts = Post.includes(:comments).order("comments.created_at desc")