2015-04-01 45 views
0

我在页眉上添加了一个搜索栏,因此应用程序中的每个页面都有一个。但是,搜索栏仅适用于主页和索引页面。当我转到我的联系页面时(仅举例),它不起作用。我尝试重定向到我的搜索网址,但似乎没有任何工作。有什么建议么?搜索栏在某些页面上不工作太阳黑子Solr

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(标题视图)

<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> 

我的搜索栏被渲染到页眉中,并将页眉渲染到应用程序中。 谢谢你的帮助。仍在学习轨道和solr如何协同工作。

回答

1

删除_header.html.erb中的表单标签,并包装搜索栏。 _searchbarheader.html.erb中的form_tag帮助器也会呈现表单标签。所以,就像你现在所做的那样,你的HTML输出将会有嵌套的形式。我不确定这是什么问题,但它是不正确的HTML,因此可能会导致问题,具体取决于页面上的其他内容,例如其他表单。