搜索栏在某些页面上不起作用 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 因此可能会导致问题,具体取决于页面上的其他内容,例如其他表格。
我在 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 因此可能会导致问题,具体取决于页面上的其他内容,例如其他表格。