使用will-paginate按排名算法排序

我正在使用Ruby on Rails创建一个类似digg的站点,对项目进行排名(基于此算法 )。 我正在使用will-paginate gem列表中的项目。

问题是,will-paginate只允许我根据表数据插入’:order =>’。 我想将will-paginate按一个数字排序,该数字是使用基于表格上不同字段的函数计算的(例如,投票数,年龄)。

我怎样才能做到这一点?

根据代码中的注释/文档 ,您可以使用

Post.paginate_by_something 

为了使用

 Post.find_all_by_something 

获取要使用paginate的项目集合。 需要:order选项来设置项目的顺序。

因此,对于您的问题,您可以创建自定义find方法,使用您的算法添加排名列。 使用:order选项对此排名进行排序。

您还可以在命名范围上使用paginate方法。 如果你为订购做了一个范围,你可以做Article.ordered.paginate