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