【发布时间】:2018-06-13 07:27:52
【问题描述】:
由于误解了正确的配置语法(这也可能是旧语法的副产品)而导致出现 OutOfBoundsError。
manual 建议使用 WillPaginate 样式参数进行类搜索。有很多领域可供借鉴,模型定义为
class AziendaSearch < BaseSearch
set_per_page 10000
accept :terms
end
set_per_page 设置为高级别,因为如果我将其设置为 100 的目标,will_paginate 链接不会显示。
控制器可能过度卷积以包含排序参数,从而导致两步过程:
@azienda_search = AziendaSearch.new params
@results = @azienda_search.search
@aziendas = Azienda.order('province_id ASC').where('id IN (?)', @results).paginate :page => params[:page], :per_page => 100
视图根据@aziendas 分页:
<%= will_paginate @aziendas, :previous_label => "precedente ", :next_label => " successiva" %>
我怀疑搜索模型设置不正确,但鉴于手册的指示,语法对我来说并不明显。 page params[:page] 肯定不行……
更新
BaseSearch 是一个 Sphinx method,实际上是继承自该应用程序的旧版本(rails2.x...)。所以这可能会造成各种语法混乱。
事实上,按照手册,我现在完全不确定如何最好地做出这些陈述。是否应该为 AziendaSearch 定义一个单独的类?如果没有,应该在哪里调用 Azienda.search 块......在控制器中?
@azienda_search = Azienda.search(
:max_matches => 100_000,
:page => params[:page],
:per_page => 100,
:order => "province_id ASC"
)
@results = @azienda_search.search
【问题讨论】:
-
您的 BaseSearch 链接指向不同的 Sphinx 项目(专注于文档而非全文搜索的项目)。
标签: thinking-sphinx