GET を使用してフォームにデータを送信する際の問題は、URL の長さが超過することです。なので投稿に切り替えました。
POST 呼び出しで使用しようとして失敗した will_paginate のような宝石を使用する代わりに、私はこのようなことをしています。
<%= link_to "Next", {:controller => "orders", :action => "advanced_search", :method => :post, :page => params[:page].to_i+1, :filters => params[:filters], :limit => params[:limit]}%>
問題は、メソッドが投稿されているにもかかわらず、パラメーターを URL 自体にマージすることです。私は基本的に、新しいページパラメーターを使用して、フォームを再度送信したいと考えています。しかし、パラメータがURLに入力されていません。
誰かが私を助けてくれたら、本当にうれしいです。
更新: URL は次のようになります
http://localhost:3000/orders/advanced_search?filters%5Bapproved_between%5D=&filters%5Bcreated_between%5D=&filters%5Border_id%5D=0111T20822130100%0D%0AO11221D208211501118%0D%0AO11D208211501118%0D%0AO11T20822130100%0D%0AO121D208211501118%0D%0AO1221D208211501118%0D%0AO1D208211501118%0D%0AO1T20822140003&filters%5Bproduct_id%5D=&filters%5Bshipped_between%5D=&filters%5Bsku%5D=&method=post&limit=50&page=2
URLを中央からトリミングしました。ブラウザーがエラーをスローします - Request-URI Too Large
更新 2: 私は現在これを使用していますが、これは機能していません。(適切にテストする前に、それが機能すると思い込んでいました)。
<%= form_tag :controller=> "orders", :action => "advanced_search", :new_params => params.merge(:page => params[:page].to_i+1) do %>
<%= submit_tag 'Next' %>
<% end %>
これは new_params を送信しますが、フォーム メソッドが POST であるにもかかわらず URL を変更します。フォーム アクション リンクのデータを orders/advanced_search?new_params........ URGH!!!! としてラップします。