I switched my advanced order form to POST from GET as the URI request became too large for browsers to handle. Everything works fine, with the exception of will pagaination. It
You can add a param to will_paginate
https://github.com/mislav/will_paginate/wiki/API-documentation
<%= will_paginate @orders['order_items'], :params => { :method => :post } %>
If it doesn't work, set te complete controller and action to params.
The other answer posted is wrong. will_paginate was NOT built to work with post requests.
Your choices to 'make' will_paginate work with post request include:
writing some javascript to:
$(".pagination li a").click(function(e){ e.preventDefault(); ....
(below code is assuming all will_paginate links have a query string...which they do. But note that this particular line of code won't work if you are passing in more params in the controller via the params option for will_paginate..which you shouldn't be in the first place because we are trying to achieve a post request.)
var tp_id = $(this).attr("href").split('?page=')[1]
$('form').append("< input type='hidden' name='page' value='" + tp_id +"' >")
$('form').submit()
.done. I hope this puts you on the right path.