我有一个标准的博客模型,用户,帖子和评论。如何查询每个自定义用户帖子的最新评论?
我知道我们可以通过帖子将用户与评论联系起来,但这并不能让我了解它是如何提供帮助的。
数据库结构
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
答案 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