Ruby on rails Rails活动记录,每个属性的限制
是否有一种方法可以为每个属性获取有限数量的记录。例如,如果我有一个属性为Ruby on rails Rails活动记录,每个属性的限制,ruby-on-rails,activerecord,rails-activerecord,Ruby On Rails,Activerecord,Rails Activerecord,是否有一种方法可以为每个属性获取有限数量的记录。例如,如果我有一个属性为author\u id的模型Post,我想获取所有帖子,但每个作者最多10篇 提前谢谢 您可以使用limit方法 如User.limit(10)将获得检索10个用户的权限您可以使用limit方法 类似于User.limit(10)将获得检索10个用户的权限这不是纯粹的AR解决方案,因此您的性能可能会有所不同: Post.all.pluck(:author_id).uniq.map do |author_id| Pos
author\u id
的模型Post
,我想获取所有帖子,但每个作者最多10篇
提前谢谢 您可以使用
limit
方法
如
User.limit(10)
将获得检索10个用户的权限您可以使用limit
方法
类似于
User.limit(10)
将获得检索10个用户的权限这不是纯粹的AR解决方案,因此您的性能可能会有所不同:
Post.all.pluck(:author_id).uniq.map do |author_id|
Post.where(author_id: author_id).limit(10)
end.flatten
这可以通过编写一些自定义SQL查询来进一步优化,但目前我只能想到这些。这不是纯粹的AR解决方案,因此您的性能可能会有所不同:
Post.all.pluck(:author_id).uniq.map do |author_id|
Post.where(author_id: author_id).limit(10)
end.flatten
这可以通过编写一些自定义SQL查询来进一步优化,但这就是我目前所能想到的。我假设您的作者有很多文章&文章属于作者。 然后,所需代码应类似于以下内容:
authors = Author.joins(:posts)
authors.includes(:posts).each do |author|
author.post.limit(10)
end
我假设你的作者有很多帖子&帖子属于作者。 然后,所需代码应类似于以下内容:
authors = Author.joins(:posts)
authors.includes(:posts).each do |author|
author.post.limit(10)
end