Ruby on Rails - will_paginate 和 .sort =>



我最近安装了 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)}

现在。。。我测试了分页宝石,如果我在控制器中执行此操作,它工作正常:

控制器.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'

我希望这能工作,这将是非常甜蜜的:)。但是,如果它不起作用,还有其他方法可以做到这一点吗?

提前感谢!

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

require 'will_paginate/array' 

相关内容

  • 没有找到相关文章

最新更新