自定义分页与排序,Rails 3

时间:2011-06-06 03:32:49

标签: ruby-on-rails ruby-on-rails-3 sorting pagination

我有一个rails 3应用程序,按照他们有多少票的顺序显示用户提交的内容。我有一个名为“rank”的模型方法,用于计算每次提交的分数。目前,在列出所有提交内容时,我在submissions_controller.rb中使用以下内容

  def index
    @submissions = Submission.all.sort_by(&:rank).reverse
  end

但是,我想为此添加分页,似乎'will_paginate'或'kamninari'在这里都不会正常工作。这是因为我需要在分页之前按等级对数据库列进行排序。有没有更好的方法来表达我的查询,以便可以使用其中一个宝石创建分页,或者您是否知道一个好的自定义分页解决方案?

谢谢!

2 个答案:

答案 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)。