如何使用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,请阅读以下内容:
-
通过修改will_paginate
来源enchante的评论
使用will_paginate默认不支持post,如果你坚持使用post,你需要为will_paginate自定义LinkRender,参见参考:github.com/mislav/will_paginate/wiki/Link-renderer
-
通过自定义POST请求
从来源 :
在HTML中进行分页的唯一正确方法是渲染一个表单,其中每个分页链接是一个提交按钮,属性name =“page”设置为页码作为值。 此表单还应保留现有搜索参数,因此它应为每个当前参数都有一个隐藏字段。 单击提交按钮将重新提交高级搜索,并更改页面参数。
-
通过自定义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