para_paginate中的params [:page]

时间:2015-11-28 05:14:16

标签: ruby-on-rails will-paginate

我们的Rails控制器中使用了Gem will_paginate

 @module_actions = @module_actions.page(params[:page]).per_page(30)

这里有params[:page]的使用方法吗? params[:page]中的0表示显示@module_actions的第一页(一页上有30条记录)吗?

2 个答案:

答案 0 :(得分:1)

params[:page] = 0无法上班。为了显示第一页,它应该是params[:page] = 1,即链接应该是

 localhost/something?page=1
 localhost/something?page=2

默认情况下,即使您删除?page=1,它也会显示首页内容,即

localhost/something?page=1 

相同
localhost/something

答案 1 :(得分:1)

此处页面表示您要查看的页码。每个页面都包含一些可以设置或使用默认值的大量记录。页面范围从1开始,可以进一步。如果您有@module_actions的100条记录,请参阅下面的输出。

@module_actions = @module_actions.page(1).per_page(30) # 1-30 records
@module_actions = @module_actions.page(2).per_page(30) # 31-60 records
@module_actions = @module_actions.page(3).per_page(30) # 61-90 records
@module_actions = @module_actions.page(4).per_page(30) # 91-100 records
@module_actions = @module_actions.page(5).per_page(30) # empty array

如果您尝试使用第0页访问记录,则会收到错误。

@module_actions = @module_actions.page(0).per_page(30) # Throws RangeError: invalid page: 0