我将高级订单表单从GET切换到POST,因为URI请求变得太大,浏览器无法处理。一切都运作良好,除了会议之外。它会不断将网页添加到网址http://localhost:3000/orders/advanced_search
,例如http://localhost:3000/orders/advanced_search?page=2
,因为这是一个帖子调用而不是来电。
任何方式它只能更新params [:page]但不对链接做任何事情?
我以前只是打电话给<%= will_paginate @orders["order_items"] %>
,当它是一个GET调用
@orders["order_items"] = @orders["order_items"].paginate(:page => params[:page],
:per_page => limit, :total_entries=>@orders["total"])
我想要的很简单,将其添加到params,但不要将其添加到链接。
答案 0 :(得分:1)
发布的另一个答案是错误的。 will_paginate不是为了处理帖子请求而构建的。
您选择“制作”will_paginate与发布请求一起使用包括:
将一些javascript写入:
$(“。pagination li a”)。click(function(e){ e.preventDefault(); ....
(下面的代码假设所有的will_paginate链接都有一个查询字符串......他们这样做。但请注意,如果你通过params选项传递更多的参数,这个特定的代码行将不起作用will_paginate ..你不应该是第一个因为我们试图获得一个邮政请求。)
var tp_id = $(this).attr(“href”)。split('?page =')[1]
$('form')。append(“&lt; input type ='hidden'name ='page'value ='”+ tp_id +“'&gt;”)
$( '形式')。提交()
.done。我希望这能让你走上正确的道路。
答案 1 :(得分:-1)
您可以为will_paginate
添加一个参数https://github.com/mislav/will_paginate/wiki/API-documentation
<%= will_paginate @orders['order_items'], :params => { :method => :post } %>
如果不起作用,请将完整的控制器和操作设置为参数。