1

我最近安装了 will_paginate gem,它运行良好,但我希望它能够与我目前的设置一起使用。现在我在同一页面上显示所有提要(或帖子),但它们是根据点击该页面的人数排序的:

控制器.rb

 @t = Time.now
 @h1 = @t - 1.hour
 @feeds = Feed.find(:all, :order => "created_at DESC").sort { |p1, p2| p2.impressionist_count(:filter=>:all, :start_date=>@h1) <=> p1.impressionist_count(:filter=>:all, :start_date=>@h1)}

现在...我测试了分页 gem,如果我在控制器中执行此操作,它可以正常工作:

控制器.rb

 @feeds = Feed.paginate(:per_page => 10, :page => params[:page], :order => "created_at DESC")

所以我认为 1+1=2 并尝试通过以下方式将两者结合起来:

控制器.rb

@feeds = Feed.paginate(:per_page => 10, :page=>params[:page], :order => "created_at DESC").sort { |p1, p2| p2.impressionist_count(:filter=>:all, :start_date=>@h1) <=> p1.impressionist_count(:filter=>:all, :start_date=>@h1)}

我无法对我的帖子进行排序和分页。尝试加载页面时出现错误:

未定义的方法 `total_pages' 用于#

我希望这个工作,它会很甜蜜:)。但是,如果它不起作用,有没有其他方法可以做到这一点?

提前致谢!

4

1 回答 1

6

这是因为 will_paginate 默认情况下仅适用于 ActiveRecord 关系。使用排序后,它将转换为数组。如果您希望 will_paginate 使用数组,则需要在控制器中要求支持它。

require 'will_paginate/array' 
于 2013-01-27T22:38:43.120 回答