所以我有一个返回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并返回没有结果的页面。
有什么想法吗?
答案 0 :(得分:3)
您似乎已在@results
中定义了writer_search_submit
,但未writer_search
。
"/editors/writer_search?commit=Search&keywords=business&page=2"
的GET请求通过EditorsController#writer_search
,其中@results
未定义(因此您获得的页面没有结果)。
更新:(感谢Thilo)
也许您可以使用before_filter为需要它的所有操作加载@results?
答案 1 :(得分:0)
Rails不会在实际搜索页面上呈现搜索结果,而是在您要搜索的任何路径的默认索引页面上。