Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails活动记录,每个属性的限制_Ruby On Rails_Activerecord_Rails Activerecord - Fatal编程技术网

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