当我使用rails gem will_paginate对页面进行分页时,如何进行调用而不是调用?
在控制器中我有
@bills = Bill.where(some_condition) # returns collection
@bills = @bills.paginate(:page => params[:page], :per_page => 5)
在视图中使用了表结构,最后使用了<%will_paginate%>
,因此第1页显示,但是当我点击&#34; next&#34;或&#34;第2页&#34;然后GET req。去,我想把它改成POST电话,是否可能?
答案 0 :(得分:2)
我同意antiqe的评论,通过POST请求分页是不对的。
但是如果你已经决定使用POST,请阅读以下内容:
修改will_paginate
来源enchante的评论
使用will_paginate默认不支持发布,如果你坚持使用post,你需要为will_paginate自定义LinkRender,参见参考:github.com/mislav/will_paginate/wiki/Link-renderer
通过自定义POST请求
来自source:
在HTML中进行分页的唯一正确方法是呈现一个表单,其中每个分页链接都是一个提交按钮,其属性名称为&#34; page&#34;设置为页码作为值。此表单还应保留现有搜索参数,因此它应为每个当前参数设置隐藏字段。单击提交按钮将重新提交高级搜索,页面参数已更改。
通过自定义ajax请求
或者您可以编写一个javascript来阻止分页链接上的默认获取请求并发送ajac post请求。查看更多here
will_paginate
不支持POST的原因是没有人使用它。
答案 1 :(得分:0)
这是可能的。但不建议这样做。
@bills = @bills.paginate(:page => params[:page], :per_page => 5)
此处 params [:page] 控制应显示哪个页面,在帖子中包含:page 参数,该参数应该有效。
更新:
will_paginate默认不支持post,如果你坚持使用post,你需要为will_paginate自定义LinkRender,参见参考:github.com/mislav/will_paginate/wiki/Link-renderer