繁体   English   中英

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

[英]How to get latest comments from each post in Rails?

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

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

数据库结构

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

在您迭代帖子的地方尝试一下(最后一个)
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

如果您的结构是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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM