【发布时间】:2011-12-18 22:56:34
【问题描述】:
经过相当多的搜索,我还是有点迷茫。还有一些其他类似的问题涉及对多个模型进行分页,但它们要么没有答案,要么分别对每个模型进行分页。
我需要一次对帐户的所有记录进行分页。
class Account
:has_many :emails
:has_many :tasks
:has_many :notes
end
所以,我想找到 30 个最近的“事物”,无论它们是什么。使用当前的分页解决方案,这甚至可能吗?
喜欢使用急切加载和 Kaminari 或 will_paginate 的某种组合?
或者,我应该首先设置所有这些东西的多态连接,称为项目。然后对最近的 30 个项目进行分页,然后查找这些项目的关联记录。
如果是这样,我不确定该代码应该是什么样子。有什么建议吗?
哪种方式更好? (甚至可能)
Rails 3.1、Ruby 1.9.2、应用未投入生产。
【问题讨论】:
-
使用 will_paginate,这应该会有所帮助:stackoverflow.com/questions/1465949/…
-
谢谢。但是,这不是我想要的。
-
认为“对一组数据行进行分页”而不是对一个数据库表的多行进行分页可能会有所帮助。数据来自多少个模型并不重要。您可能还希望查看 kaminiri 以了解它是否更好地满足您的需求。
-
谢谢@MichaelDurrant,但我不确定如何“通过一组数据行”进行分页。我查看了 Kaminari,但无法确定它是否同时适用于多个表。我想我想知道如何当它可以是模型的任意组合时,你怎么能用 SQL 获取 30 个最新的。绝对没有 sql 专家,但是有没有办法在没有某种 n+1 查询的情况下将查询限制为 30?
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 will-paginate kaminari