我正在按照此处提到的说明进行操作Rails 3: sunspot solr : added search capability for each page
但是,它似乎对我不起作用。我正在尝试实现类似 twitter 的搜索功能,其中搜索栏位于导航栏中的顶部,并且可以通过应用程序中的任何页面进行搜索,并将它们带到搜索结果页面。
当我在帖子主页(views/posts/index.html.erb)中通过浏览器中的搜索查询时
http://localhost:3000/post?utf8=%E2%9C%93&search=test&commit=Search
它返回所需的搜索结果。但是当我在应用程序的其他页面并尝试搜索它时,它会在地址栏中形成 url,如下所述,并且永远不会通过在视图/布局/中声明的顶部导航栏中的搜索框进行搜索application.html.erb 页面。
http://localhost:3000/users/1/following?utf8=%E2%9C%93&search=test&commit=Search
http://localhost:3000/posts/1/favorite?utf8=%E2%9C%93&search=test&commit=Search
以下是详细信息:-
我的模特 post.rb
searchable do
text :title, :tag_list
end
我的控制器 - posts_controller.rb
def index
if params[:search]
@search = Post.search do
fulltext params[:search]
paginate :page => params[:page], :per_page => 5
end
@posts = @search.results
else
@posts = @posts.plusminus_tally({:order => "vote_count ASC"}).page(params[:page]).per(6)
end
respond_to do |format|
format.html
format.json { render json: @posts}
end
end
查看 - layouts/application.rb
<%= form_tag posts_path, :method => :get do %>
<div class="input-append">
<%= text_field_tag :search, params[:search] , :class => "span2 search-query", :style => 'width:200px' %>
<%= submit_tag "Search", :post => nil , :class => "btn" %>
</div>
<% end %>