我正在尝试整合轮胎到我的网站,我有困难与分页。我已经尝试在Tire的上下文之外对结果进行分页,will_paginate正在处理该数组。然而,当我在Tire的上下文中尝试will_paginate时,我遇到了一个大问题。
考虑到:per_page,Will_Paginate将显示正确的页面数量,但当我单击该页面时,结果不会加载,而是与第一个页面上的结果相同。页码将在will_paginate导航中突出显示。
@results.inspect产生了这样的结果:
#<Tire::Search::Search:0x007f88ab9153d0 @indices=["deja-set-development"], @types=[], @options={:load=>true, :page=>1, :per_page=>2}, @path="/deja-set-development/_search", @query=#<Tire::Search::Query:0x007f88ab915088 @value={:query_string=>{:query=>"oh"}}>, @facets={"type"=>{:terms=>{:field=>:_type, :size=>10, :all_terms=>false}}}>下面是我调用will_paginate的地方:
= will_paginate @search_results.results, params下面是我遍历结果的地方
@search_results.results.each有谁有什么想法吗?
编辑
我不确定这是怎么回事,但我这么做了,它起作用了。
@search_results = @search_results.paginate(:page => params[:page], :per_page => 5)发布于 2013-02-13 12:19:45
为了澄清,我在这里附上了我与@karmi的github通信。
https://github.com/karmi/tire/issues/627#issuecomment-13449368
我使用的是Tire.search,而不是按模型搜索。正如@karmi指出的那样,目前轮胎还不支持:per_page和:page。
下面是我解决这个问题的方法:
@search_results = Tire.search [:index1, :index2, :index3], :load => true, :from => from, :size => size do
query do
string q, :default_operator => 'AND', :fields => [:name1, :name2]
end
end我最终不得不旋转我自己的小型分页系统来增加“size”和“from”。这是关于这个主题的elasticsearch链接。
http://www.elasticsearch.org/guide/reference/api/search/from-size.html
您仍然可以访问
= @search_results.results.total_entries/next_page/previous_page 这有助于分页。
再次感谢你@karmi。
发布于 2013-02-09 16:02:27
请查看轮胎中的integration test,并确保您正确传递了所有选项。
https://stackoverflow.com/questions/14780888
复制相似问题