如何从Rails中的每个帖子获取最新评论?

时间:2017-08-07 13:50:05

标签: mysql ruby-on-rails activerecord rails-activerecord

我有一个标准的博客模型,用户,帖子和评论。如何查询每个自定义用户帖子的最新评论?

我知道我们可以通过帖子将用户与评论联系起来,但这并不能让我了解它是如何提供帮助的。

数据库结构

users: id, name, created_at, updated_at

posts: id, title, created_at, updated_at, user_id

comments: id, text, created_at, updated_at, user_id, post_id

2 个答案:

答案 0 :(得分:-1)

尝试使用迭代帖子的地方(最后一个)
post.comments.last

@posts.each do |post|
  post.comments.last #for last one
  post.comments.order(created_at: desc).limit(5) #for latest 5
end

答案 1 :(得分:-2)

如果您的结构user有很多comments,如果您想获得最新的结果,请先按照created_at对注释进行排序,如下所示:

user.order('created_at DESC').comments

post模型中:

def latest_comment
    comments.order('created_at DESC').first
end

然后像这样使用它:

Post.all.each do |post|
    post.latest_comment
end