why does will_paginate .maximum return nil?
我有一个典型的用户表,其中包含40行。当我在will_paginate .paginate结果上调用.maximum时,当页面为nil或1:
时,我得到了预期的结果
(byebug) User.paginate(page: nil, per_page: 5).maximum(:id)
1036274506
(byebug) User.paginate(page: 1, per_page: 5).maximum(:id)
1036274506
但是当页面为2时.maximum返回nil。
(byebug) User.paginate(page: 2, per_page: 5).maximum(:id)
nil
在进行其余的下游处理之前,我需要的是.paginate结果集中特定列的最小值和最大值。我知道我可以先在此列上调用.order,然后再调用.first和.last,但这会抛弃我进行下游处理所需的现有排序。
我的问题是:
如果需要的话,我会对其进行破解,但我希望首先了解这里发生的事情,然后希望避免黑客入侵。
我正在使用Rails 5.0.1和WillPaginate 3.1.5。
谢谢!
User.paginate(page:1,per_page:5).maximum(:id)将被触发
查询OFFSET 0
+-------------------+
| MAX(
+-------------------+
| 1036274506 |
+-------------------+
1 row in set (0.00 sec)
User.paginate(page:2,per_page:5).maximum(:id)带有OFFSET 5的火灾查询
Empty set (0.00 sec)
不确定,但我认为max不能与偏移量一起使用,
您可以使用