渴望加载协会但限制回报

时间:2011-11-06 20:49:07

标签: ruby-on-rails activerecord ruby-on-rails-3.1

这似乎是一个简单的查询,但我无法指出它。

基本上,它归结为具有帖子的类别的古老概念。预期的关联到位,一个类别具有多个帖子,而一个帖子属于一个类别。

我想用帖子检索所有类别,但将帖子数限制为10个。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这不是你可以用原始SQL做的事情,因为LIMIT是在总数据集大小上,而不是其他任何东西。

纯粹通过SQL执行此操作的唯一方法是在连接和过滤器中创建一个虚假的id列,而不是在它出现时,这实际上是依赖于您正在使用的数据库服务器。

替代方案要么获得所有类别和帖子并减少记录集,要么获得所有类别并按照Joerg建议迭代获得10个帖子。

答案 1 :(得分:0)

您是否需要在一个SQL语句中检索它们?或者你需要时懒得加载它们吗?

在哪种情况下

Category.all

将获取您的所有类别,并通过它们来获取您的帖子可能只是

Category.all.each do |category|
  category.posts.limit(10)
end

这还不够吗?