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

看起来你已经@resultswriter_search_submit但没有定义writer_search

GET 请求"/editors/writer_search?commit=Search&keywords=business&page=2"通过EditorsController#writer_searchwhere@results是未定义的(因此您会得到一个没有结果的页面)。

更新:(感谢蒂洛)

也许您可以使用 before_filter 为所有需要它的操作加载@results?

于 2012-04-11T17:13:35.340 回答
0

Rails 不会在实际搜索页面上呈现搜索结果,而是在您正在搜索的任何路线的默认索引页面上呈现搜索结果。

于 2012-07-31T05:40:40.043 回答