我遇到will_paginate
的问题,表达起来非常简单:
> Story.paginate(page: 1, per_page: 10).count
=> 20
显然,这个数字应该是10,而不是20。
我在某种程度上做错了吗?在这里似乎没有多大的错误空间,但显然有些事情是不对的。我错过了什么?
答案 0 :(得分:3)
您需要Story.paginate(page: 1, per_page:10).size
,而不是count
。 Count实际上会返回查询生成的记录总数。
答案 1 :(得分:0)
因为will_paginate
gem会覆盖count
方法
def count(*args)
if limit_value
excluded = [:order, :limit, :offset, :reorder]
excluded << :includes unless eager_loading?
rel = self.except(*excluded)
column_name = (select_for_count(rel) || :all)
rel.count(column_name)
else
super(*args)
end
end
它会驱逐order, limit, offset and reorder
。 link to code
您应该使用size
或total_entries