思维狮身人面像:跨多个模型搜索:最佳实践



我想添加一个带有类别的jquery自动完成。该请求将使用Thinking Sphinx 在多个模型(论坛主题、新闻、用户…)中进行搜索

所以在控制器中,我认为它看起来像

def autocomplete
 @news = Actu.search(params[:term]).map {|g| {:label => g.title, :category => "Actualités", :id => g.id}}
 @topics = Topic.search(params[:term]).map {|g| {:label => g.title, :category => "Topics", :id => g.id}}
 @anotherModel = ...
 respond_to do |format|
   format.js { render :json => @news+@topics+@anotherModel }
 end
end

这很有效,但你对这些做法有什么看法?

你可以试试这个很棒的语法

ThinkingSphinx.search 'pancakes', :classes => [Article, Comment]

更多信息,请访问http://freelancing-god.github.com/ts/en/searching.html

您可以在应用程序中搜索所有索引模型:

ThinkingSphinx.search(params[:term])

然后可以为每个模型定义返回hash的方法,比如autocomplete_json

所以,你的行动

def autocomplete
  render :json => ThinkingSphinx.search(params[:term]).map(&:autocomplete_json)
end

相关内容

  • 没有找到相关文章

最新更新