我正在使用 Ruby on Rails 创建一个类似于 digg 的站点,该站点对项目进行排名(基于此算法)。我正在使用 will-paginate gem 列出页面中的项目。
问题是,will-paginate 只允许我根据表数据插入 ':order =>'。我想让 will-paginate 按一个数字排序,该数字是使用基于表上不同字段(例如投票数、年龄小时)的函数计算的。
我怎样才能做到这一点?
我正在使用 Ruby on Rails 创建一个类似于 digg 的站点,该站点对项目进行排名(基于此算法)。我正在使用 will-paginate gem 列出页面中的项目。
问题是,will-paginate 只允许我根据表数据插入 ':order =>'。我想让 will-paginate 按一个数字排序,该数字是使用基于表上不同字段(例如投票数、年龄小时)的函数计算的。
我怎样才能做到这一点?
You can also use the paginate
method on named scopes. If you make a scope for the ordering you could just do Article.ordered.paginate
.
根据代码中的注释/文档,您可以使用
Post.paginate_by_something
为了使用
Post.find_all_by_something
获取要使用分页的项目集合。该:order
选项是设置项目顺序所必需的。
因此,对于您的问题,您可以创建一个自定义find
方法,使用您的算法添加一个排名列。使用:order
选项对此排名进行排序。