使用will_paginate gem获取记录在rails中的当前页面

时间:2018-02-28 14:55:25

标签: ruby-on-rails

我需要获取当前页面的记录数量。我使用will_paginate gem进行分页。在尝试获取collection.count时,我获得了总记录数?

@collection = User.paginate(page: params[:page], per_page: 10).all

当我尝试获取收集计数时,它返回总条目。如何获取当前表的记录数

5 个答案:

答案 0 :(得分:1)

尝试:

@collection.total_entries

答案 1 :(得分:1)

如果您需要整个查询中的总条目:

@collection.total_entries

如果您需要当前页面的输入计数:

@collection.size

同时你不需要在分页中调用最后.all范围。试试吧:

@collection = User.paginate(page: params[:page], per_page: 10)

答案 2 :(得分:0)

如果您想要当前页面上的当前项目数,则应该@collection.size。 如果您想要项目总数,则应该@collection.count

您可以尝试将page设置为最后一页以查看差异。

也可以使用

@collection = User.paginate(page: params[:page], per_page: 10)

因为paginate只返回相应的集合,配置了pageper_page参数。

答案 3 :(得分:0)

我还想找到当前页面的记录数。但是@ surveys.size不会返回当前页面中的记录数,而是如果当前页面已被填充则返回记录数。 Rails 5.2.2 ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

@collection.length 

是提供所需结果的人。

答案 4 :(得分:0)

@collection.entries

为您提供当前页面上的条目。例如,如果您对25个条目进行分页,它将在Array类中显示25个条目