Pau*_*ulC 1 ruby-on-rails will-paginate elasticsearch
在使用ThinkingSphinx和Solr/Sunspot头痛之后,我们尝试将ElasticSearch和Tire作为我们的搜索后端 - 但我遇到了问题.
这是我在控制器中的搜索命令:
@results = Item.search params[:search], :page => ( params[:page] || 1 ), :per_page => 20
Run Code Online (Sandbox Code Playgroud)
这是视图的问题部分:
<%= page_entries_info @results %>
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是
undefined method `offset' for #<Tire::Results::Collection:0xa3f01b0>
Run Code Online (Sandbox Code Playgroud)
但只有当有超过一页的结果时.如果返回的项目少于20个,那么它们就会显示正常.
我在其他地方找到的唯一类似的报告问题是通过将:page和:per_page参数传递给search函数来解决的,但我已经这样做了,但无济于事.
轮胎有一个分页模块,但没有定义offset.您可以向他们提出问题以添加它,但在此期间您可以在应用中对其进行monkeypatch:
Tire::Results::Pagination.module_eval do
def offset
(@options[:per_page] || @options[:size] || 10 ).to_i * (current_page - 1)
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2486 次 |
| 最近记录: |