如何使用will_paginate进行POST调用而不是GET调用?

当我使用rails gem will_paginate对页面进行分页时,如何进行调用而不是调用?

在控制器我有

@bills = Bill.where(some_condition) # returns collection @bills = @bills.paginate(:page => params[:page], :per_page => 5) 

在视图中使用了表结构,最后使用了 ,因此第1页显示,但是当我点击“next”或“page 2”然后GET req。 去,我想把它改成POST电话,有可能吗?

我同意antiqe的评论,通过POST请求分页是不对的。

但如果你已经下定决心使用POST,请阅读以下内容:

  1. 通过修改will_paginate

    来源enchante的评论

    使用will_paginate默认不支持post,如果你坚持使用post,你需要为will_paginate自定义LinkRender,参见参考:github.com/mislav/will_paginate/wiki/Link-renderer

  2. 通过自定义POST请求

    从来源 :

    在HTML中进行分页的唯一正确方法是渲染一个表单,其中每个分页链接是一个提交按钮,属性name =“page”设置为页码作为值。 此表单还应保留现有搜索参数,因此它应为每个当前参数都有一个隐藏字段。 单击提交按钮将重新提交高级搜索,并更改页面参数。

  3. 通过自定义ajax请求

    或者您可以编写一个javascript来阻止分页链接上的默认获取请求并发送ajac post请求。 在这里看到更多

will_paginate不支持POST的原因是没有人使用它。

那是可能的。 但不建议这样做。

 @bills = @bills.paginate(:page => params[:page], :per_page => 5) 

这里params [:page]控制应该显示哪个页面,包括post中的页面参数,应该有效。

更新:

will_paginate默认不支持post,如果你坚持使用post,你需要为will_paginate自定义LinkRender,参见参考:github.com/mislav/will_paginate/wiki/Link-renderer