0

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

每个帖子可能有评论或没有评论。例如 :-

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

现在我无法找到每个帖子的最后两条评论以及关于该帖子的评论总数。任何人都可以建议如何解决这个问题。因为我有一个非常糟糕的方法,那就是通过为 Post 触发每个循环并找到最后/最新的 2 条评论。

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

4

1 回答 1

0

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

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

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

就像是:

Comment.where(post_id: post.id).limit(2).order("id DESC")
于 2013-05-22T04:48:47.413 回答