Kaminari在控制器中更改每页最大值

时间:2015-09-14 18:41:42

标签: ruby-on-rails kaminari

我想知道是否可以在控制器上设置max_per_page值。我有默认设置:

Kaminari.configure do |config|
  config.max_per_page = 100
end

或模型中设置的max_paginates_per

class Test < ActiveRecord::Base
  max_paginates_per 100
end

但是在控制器中我想要一个不同的值...例如,使用Web视图的默认最大值,并为API路径使用不同的值。类似的东西:

Test.page(params[:page]).per(params[:per]).max_per_page(500)

注意我不希望per为500 ......它可以通过参数进行配置......我只想让它的最大允许值为500.

谢谢!

3 个答案:

答案 0 :(得分:0)

喜欢这样吗?

Test.page(params[:page]).per([params[:per].to_i, 500].min)

使用提供的参数或500,取其中的较小者。

答案 1 :(得分:0)

目前无法做到这一点,但有解决此问题的拉取请求:https://github.com/amatsuda/kaminari/pull/736

答案 2 :(得分:0)

现在是kaminari的一部分。您的控制器呼叫将是

Test.page(params [:page])。per(params [:per])。max_paginates_per(500)

https://github.com/kaminari/kaminari/pull/754