[英]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.