1

有没有办法从模型而不是索引表条目中获取 pg_search 结果?我的代码有效,但我必须遍历结果。

search = PgSearch.multisearch(params[:search])

@items = Array.new
search.find_each do |result|
  @items.push(result.searchable)
end
4

1 回答 1

4

Multisearch 将始终返回PgSearch::Document记录。

如果你想直接查询你的模型,你可以定义一个pg_search_scope,例如:

pg_search_scope :custom_search, :against => [:title] # Can use multiple fields

然后将其与 一起使用search = Model.custom_search(params[:search]),这将返回Model记录。

此外,在上面编写代码的更简洁的方法是:

search = PgSearch.multisearch(params[:search])
@items = search.map(&:searchable)
于 2013-07-26T20:10:28.993 回答