经过相当多的搜索,我仍然有点迷失。还有一些其他类似的问题涉及对多个模型进行分页,但它们要么没有答案,要么分别对每个模型进行分页。
我需要一次对帐户的所有记录进行分页。
class Account
:has_many :emails
:has_many :tasks
:has_many :notes
end
所以,我想找到 30 个最近的“东西”,不管它们是什么。使用当前的分页解决方案,这甚至可能吗?
喜欢使用预先加载和 Kaminari 或 will_paginate 的某种组合?
或者,我应该首先设置所有这些东西的多态连接,称为 Items.join。然后对最近的 30 个项目进行分页,然后查找这些项目的关联记录。
如果是这样,我不确定该代码应该是什么样子。有什么建议?
哪种方式更好? (甚至可能)
Rails 3.1、Ruby 1.9.2、应用程序不在生产中。
最佳答案
使用 will_paginate :
@records = #do your work and fetch array of records you want to paginate ( various types )
然后执行以下操作:
current_page = params[:page] || 1
per_page = 10
@records = WillPaginate::Collection.create(current_page, per_page, records.size) do |pager|
pager.replace(@records)
end
那么在你看来:
<%=will_paginate @records%>
关于ruby-on-rails - 如何对来自多个模型的记录进行分页? (我需要多态连接吗?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7957762/