在我的应用程序中,我必须像Facebook一样从Post模型的评论模型中获取最后/最新两条评论。
对于每个帖子可能有评论与否。例如: -
Post 1 having 10 comments.
Post 2 having 5 comments.
Post 3 have no comments.
Post 5 have 20 comments.
现在,我无法找到每个帖子的最后两条评论以及与该帖子相关的评论总数。谁能建议如何解决这个问题。因为我在脑海里有一种非常糟糕的方法,通过为Post发送每个循环并找到最后/最新的2条评论。
提前致谢。希望有最好的方法/方法。
答案 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")