我在标题中添加了一个搜索栏,因此应用程序中的每个页面都有一个。但是,搜索栏仅适用于主页和索引页。当我转到我的联系页面(只是一个例子)时,它不起作用。我已经尝试重定向到我的搜索网址,但似乎没有任何效果。有什么建议吗?
search_controller.rb(controller)
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(model)
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(标题视图)
<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>
我的搜索栏呈现在标题中,标题呈现在应用中。 感谢您的任何帮助。还在学习rails和solr如何协同工作。
答案 0 :(得分:1)
删除包含搜索栏的_header.html.erb中的表单标记。 _searchbarheader.html.erb中的form_tag帮助器也将呈现表单标记。因此,正如您现在所拥有的那样,您的HTML输出将具有嵌套表单。我不确定这是什么问题,但它是不正确的HTML,因此可能会导致问题,具体取决于页面上的其他内容,例如其他表单。