太阳黑子搜索

时间:2013-02-19 08:58:31

标签: ruby-on-rails ruby-on-rails-3 sunspot sunspot-rails

我知道我的这个搜索功能刚刚工作但是一直在用引导程序重做我的搜索和导航栏,现在它看起来不错但搜索功能不起作用!!我认为这是索引行动的一部分?它所做的一切都是,没有。也许它没有提交表格? - 我怎么检查这个?

视图 * * guidelines_controller.rb

 def index
    @guidelines = Guideline.order(:title).all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @guidelines }
    end
    @search = Sunspot.search(Guideline) do  
    fulltext params[:search]  
  end  
  @guidelines = @search.results 
  end

布局/ application.html.erb

<%= form_tag guidelines_path, :class => 'navbar-search', :method => :get do %>  

    <%= text_field_tag :search, params[:search], :class => 'search-query', :placeholder=>"Search" %> 

模型 guideline.rb

searchable do
    text :title, :default_boost => 2
    text :subtitle
  end

1 个答案:

答案 0 :(得分:1)

我不是太阳黑子专家,但你的控制器方法有点奇怪。为什么在调用太阳黑子之前渲染你的视图?

此外,为什么要获取所有指南行(Guideline.order(:title).all)?

我已经重构了你的方法,假设你想在搜索条件(params [:search])的情况下使用Sunspot进行搜索。否则,将获取所有行。

def index
  if params[:search].present?
    @search = Sunspot.search(Guideline) do  
      fulltext params[:search]
    end

    @guidelines = @search.results
  else
    @guidelines = Guideline.order(:title).all
  end

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @guidelines }
  end
end

顺便说一下,如果Guideline模型包含很多行,你应该考虑限制行数(限制或分页)。

修改

以下是有关太阳黑子#278 Search with Sunspot

的截屏视频

也许你忘了重新索引你的搜索引擎?

rake sunspot:reindex