ROR +获取每个帖子的最新或最后两条评论

时间:2013-05-13 11:07:01

标签: ruby-on-rails-3.2 facebook-comments

在我的应用程序中,我必须像Facebook一样从Post模型的评论模型中获取最后/最新两条评论。

对于每个帖子可能有评论与否。例如: -

Post 1 having 10 comments.
Post 2 having 5 comments.
Post 3 have no comments.
Post 5 have 20 comments.

现在,我无法找到每个帖子的最后两条评论以及与该帖子相关的评论总数。谁能建议如何解决这个问题。因为我在脑海里有一种非常糟糕的方法,通过为Post发送每个循环并找到最后/最新的2条评论。

提前致谢。希望有最好的方法/方法。

1 个答案:

答案 0 :(得分:0)

一种天真的方法:假设每个帖子都有一个has_many:comments关系,你可以尝试:

comments = post.comments
total_comments = comments.count
last_two_comments = comments.last(2)

它将为您提供post对象的最后两条注释。这将加载每个帖子的所有评论,因此可能不是理想的性能。或者,您可以查询post_id等于有问题的post_id的注释。

类似的东西:

Comment.where(post_id: post.id).limit(2).order("id DESC")