【发布时间】:2011-11-06 20:49:07
【问题描述】:
这似乎是一个简单的查询,但我就是搞不懂。
基本上它归结为具有帖子的类别的古老概念。预期的关联已经到位,一个类别有_many 个帖子,而一个帖子属于一个类别。
我想检索所有类别及其帖子,但将帖子数量限制为 10 个。
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails activerecord ruby-on-rails-3.1
这似乎是一个简单的查询,但我就是搞不懂。
基本上它归结为具有帖子的类别的古老概念。预期的关联已经到位,一个类别有_many 个帖子,而一个帖子属于一个类别。
我想检索所有类别及其帖子,但将帖子数量限制为 10 个。
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails activerecord ruby-on-rails-3.1
这不是您可以使用原始 SQL 执行的操作,因为 LIMIT 是针对总数据集大小的,而不是其他任何内容。
纯粹通过 SQL 执行此操作的唯一方法是在您的联接和过滤器中创建一个假 id 列,而不是在它出现时创建一个虚假的 id 列,这在实现方面非常依赖于您使用的数据库服务器。
另一种选择是获取所有类别和帖子并减少记录集,或者获取所有类别并按照 Joerg 的建议迭代获得 10 个帖子。
【讨论】:
您需要在一个 SQL 语句中检索它们吗?或者在需要时可以延迟加载它们吗?
在什么情况下
Category.all
将获取您的所有类别,并逐步浏览它们以获取您的帖子可能只是
Category.all.each do |category|
category.posts.limit(10)
end
这还不够吗?
【讨论】: