したがって、私はKaminariページ配列を返す検索フォームを持っています。最初のページは常に結果のリストを返しますが、後続のすべてのページリンクの「取得」は結果を返しません。理由はわかりません!ここで検索フォームの結果のページ番号は、後続のページ(Kaminari + Rails)には何も返しません。
は私のコントローラ
def writer_search
@writers = Kaminari.paginate_array(@results).page(params[:page]).per(10)
end
def writer_search_submit
@results = #my big array of results, this part works fine
@writers = Kaminari.paginate_array(@results).page(params[:page]).per(10)
render 'writer_search'
end
コードの表示
=form_tag(writer_search_submit_path, :method => 'post') do
%input{:name => 'keywords', :id => 'keywords', :value => params[:keywords]}
= submit_tag "Search"
- @writers.each do |writer|
#show the results
= paginate @writers
サーバーログページネーションリンクをクリック
Started GET "/editors/writer_search?commit=Search&keywords=business&page=2"
Processing by EditorsController#writer_search as HTML
Parameters: {"commit"=>"Search", "keywords"=>"business", "page"=>"2", "utf8"=>"✓"}
の私の検索方法です
最初のレンダリングされたページには、私の配列の最初の10個の結果があります(この場合、何百もの結果があります)。いずれかのページネーションリンクをクリックすると、GETが行われ、結果のないページが返されます。
アイデア?
これは正しいと思われますが、絶対にしなければセッションにデータを保存しないでください。 'before_filter'を使って、それを必要とするすべてのアクションに対して@resultsをロードします。 – Thilo