是否有办法为每个属性获取有限数量的记录。例如,如果我的模型Post
具有属性author_id
,我想要获取所有帖子,但每个作者最多10个?
提前致谢!
答案 0 :(得分:1)
您可以使用limit
方法。
与User.limit(10)
一样,将获得检索10个用户
答案 1 :(得分:1)
我假设您的作者有很多帖子&帖子属于作者。 然后,所需的代码应类似于以下内容:
authors = Author.joins(:posts)
authors.includes(:posts).each do |author|
author.post.limit(10)
end
答案 2 :(得分:0)
这不是一个非常纯粹的AR解决方案,因此您的表现可能会有所不同:
Post.all.pluck(:author_id).uniq.map do |author_id|
Post.where(author_id: author_id).limit(10)
end.flatten
这可以通过编写一些自定义SQL查询进一步优化,但这就是我现在能想到的全部内容。