【问题标题】:RangeError Exception: offset 25 and limit 25 are outside allowed range Pagination KaminariRangeError 异常:偏移量 25 和限制 25 超出了允许的范围
【发布时间】:2012-10-29 15:33:31
【问题描述】:

我正在尝试对数据库中的一些项目进行分页,但是当我尝试进入分页的第二页时出现此错误:

RangeError Exception: offset 25 and limit 25 are outside allowed range

这是我的控制器中设置分页的代码:

@activities = (current_user.followed_users.activities(:order => [:created_at.desc]) + current_user.followed_centers.activities(:order => [:created_at.desc])).all(:limit => 40)

unless (params[:page].nil?)
  @page = params[:page].to_i
end

unless (@page.nil?)
  @activities = Kaminari.paginate_array(@activities).page(@page).per(10)
else
  @activities = Kaminari.paginate_array(@activities).page(0).per(10)
end

我将查询中返回的对象数量限制为 40,然后尝试对结果集进行分页,但出现范围错误。我不确定这里有什么问题。如果我取消初始查询的限制,这可以正常工作。

这是终端中的输出:

RangeError (offset 25 and limit 25 are outside allowed range):
  lib/ct_gems/dm-core-1.2.0/lib/dm-core/query.rb:1298:in `get_relative_position'
  lib/ct_gems/dm-core-1.2.0/lib/dm-core/query.rb:592:in `slice!'
  lib/ct_gems/dm-core-1.2.0/lib/dm-core/query.rb:567:in `slice'
  lib/ct_gems/dm-core-1.2.0/lib/dm-core/collection.rb:1414:in `sliced_query'
  lib/ct_gems/dm-core-1.2.0/lib/dm-core/collection.rb:396:in `[]'
  app/controllers/users_controller.rb:64:in `stream'
  lib/ct_gems/dm-core-1.2.0/lib/dm-core.rb:263:in `block in repository'
  lib/ct_gems/dm-core-1.2.0/lib/dm-core/repository.rb:114:in `scope'
  lib/ct_gems/dm-core-1.2.0/lib/dm-core.rb:263:in `repository'

有人可以帮忙吗?

【问题讨论】:

  • 这很奇怪,当我将限制设置为 50 时似乎有效..

标签: ruby-on-rails datamapper kaminari


【解决方案1】:

不确定这是否会有所帮助,但您可以尝试将总数传入

@activities = Kaminari.paginate_array(@activities, total_count: 40 ).page(@page).per(10)

您还可以调用 paginate_array 使用的偏移量和限制参数,这可能会有所帮助。

*更新*

这也可能引导你走上正确的道路

https://github.com/amatsuda/kaminari/pull/160

https://github.com/amatsuda/kaminari/pull/111

【讨论】:

  • 感谢您的尝试,但是当我这样做时,分页中显示了 10 多个元素,当我转到第 2 页时,那里有相同的项目。
猜你喜欢
  • 2022-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
相关资源
最近更新 更多