如何在Kaminari分页后获取总计数

56
我正在使用Rails 3.2版本,并通过.page(1).per_page(10)进行结果分页。
类似于:
@users = User.method().page(1).per_page(10)

如何从分页中获取用户的总数?

因为@users.count只会返回第一页的10个用户数量,而不是所有页面的总数。

如何获取分页后的用户总数

编辑:@users.total_count可以返回整个分页的用户总数。

3个回答

101

如问题所述,您可以使用以下方法获取记录的总数:

@users.total_count

出于完整性的考虑,我已将此添加为答案。


1
你可以使用@users.total_count
然而,如果你想要获取每页的总数,例如: 20 of 135 results 那么total_count只会返回135,而不是页面上结果的数量。
如果你想要处理这种情况以及结果数量小于分页结果数量的情况,那么我建议使用以下方法:
(per_size > @users.total_count) ? @users.total_count : per_size

其中per_size是您为per作用域设置的值(此处的文档)。


0

User.count会给你计数,但会访问数据库。如果你使用的是mongodb,@user.length会给你总数。


6
答案是total_count,@user.length由于分页的缘故会给你相同的10。 - eveevans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接