搜索栏在某些页面上不起作用 Sunspot Solr

Search bar not working on some pages Sunspot Solr

我在 header 中添加了一个搜索栏,因此应用程序中的每个页面都有一个。但是,搜索栏仅适用于主页和索引页。当我转到我的联系页面(只是一个例子)时,它不起作用。我已尝试重定向到我的搜索 URL,但似乎没有任何效果。有什么建议吗?

search_controller.rb(控制器)

class SearchController < ApplicationController

 def index
   @search = Sunspot.search [Dairy, Drink] do
   fulltext params[:search]
 end

 if @search.results.any?
   @results = @search.results
  else
   return redirect_to request_path
  end
 end 

end

search.rb(型号)

class Search < ActiveRecord::Base

attr_accessible :title

searchable do
  autosuggest :search_title, :using => :title   
 end
end

_searchbarheader.html.erb(搜索栏视图)

<%= form_tag search_index_path, :method => :get do %>
  <%= text_field_tag :search, params[:search], style:"width:300px; height:30px;" %>
  <%= submit_tag "Search!", :name => nil, class: "btn btn-default"%>
<% end %>

_header.html.erb(header 视图)

<div class="container-fluid">
    <%= render 'layouts/brand' unless @skip_brand %> 
  <form class="navbar-form navbar-left">
    <%= render 'layouts/searchbarheader' unless @skip_header %>
  </form>

  <div id="navbar" class="navbar-collapse collapse">
    <ul class="nav navbar-nav navbar-right">
        <% if user_signed_in? %>
        <li><%= link_to current_user.name%></li>
        <li><a class="glyphicon glyphicon-cog" href="<%=edit_user_registration_path%>"></a></li>
      <li><%= link_to "Logout", destroy_user_session_path, method: :delete %> </li>  
    <%else%>   
        <li><%= link_to "Login", new_user_session_path %></li>
        <li><%= link_to "Sign up", new_user_registration_path %></li>
    </ul>    
    <%end%>
</div>

我的搜索栏呈现在 header 中,header 呈现在应用程序中。 感谢您的任何帮助。仍在学习 rails 和 solr 如何协同工作。

删除 _header.html.erb 中环绕搜索栏的表单标签。 _searchbarheader.html.erb 中的 form_tag 助手也将呈现表单标签。因此,正如您现在拥有的那样,您的 HTML 输出将具有嵌套形式。我不确定那是问题所在,但它是不正确的 HTML 因此可能会导致问题,具体取决于页面上的其他内容,例如其他表格。