我有一个rails 3应用程序,按照他们有多少票的顺序显示用户提交的内容。我有一个名为“rank”的模型方法,用于计算每次提交的分数。目前,在列出所有提交内容时,我在submissions_controller.rb中使用以下内容
def index
@submissions = Submission.all.sort_by(&:rank).reverse
end
但是,我想为此添加分页,似乎'will_paginate'或'kamninari'在这里都不会正常工作。这是因为我需要在分页之前按等级对数据库列进行排序。有没有更好的方法来表达我的查询,以便可以使用其中一个宝石创建分页,或者您是否知道一个好的自定义分页解决方案?
谢谢!
答案 0 :(得分:4)
这最终起作用了:
@submissions = Submission.all.sort_by(&:rank).reverse
@submissions = Kaminari.paginate_array(@submissions).page(params[:page]).per(25)
答案 1 :(得分:0)
也许你可以在SQL中计算排名?或者,添加一列并将其与记录一起保存(例如before_save:calculate_rank)。