我关注模型
发表:
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提供了最好的方法。高度赞赏。感谢。
答案 0 :(得分:2)
试试这个,
@posts = Post.includes(:comments).order("comments.created_at desc")