0

そこで、Kaminari のページ分割された配列を返す検索フォームを作成しました。最初のページは常に結果のリストを返しますが、後続のすべてのページ リンクの「GET」では結果が返されず、その理由がわかりません!

これが私のコントローラーの検索方法です

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 が行われ、結果のないページが返されます。

何か案は?

4

2 に答える 2

3

@resultsで定義しているようですが、でwriter_search_submitはありませんwriter_search

whereを"/editors/writer_search?commit=Search&keywords=business&page=2"通過するGET リクエストは定義されていません (そのため、結果のないページが表示されます)。EditorsController#writer_search@results

更新:(Thiloに感謝)

おそらく、 before_filter を使用して、それを必要とするすべてのアクションの @results をロードできますか?

于 2012-04-11T17:13:35.340 に答える
0

Rails は、検索結果を実際の検索ページに表示するのではなく、検索しているルートのデフォルトのインデックス ページに表示します。

于 2012-07-31T05:40:40.043 に答える