2015-03-25 60 views
1

最后在搜索单个模型时得到了太阳黑子,但在搜索多个时遇到了一些问题。使用太阳黑子Solr Rails搜索多个模型时出错3

,我正在做一个搜索后得到的错误:

Missing template search/index, application/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "/Users/Indokathan/code/iibfy/app/views" * "/usr/local/rvm/gems/ruby-1.9.3-p392/gems/devise-3.4.1/app/views" 

search.rb

class Search < ActiveRecord::Base 
attr_accessible :title 

searchable do 
    text :title  
    end 
end 

search_controller.rb

class SearchController < ApplicationController 

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

searchbar.html.erb

<%= form_tag search_index_path, :method => :get do %> 
<p> 
    <%= text_field_tag :search, params[:search], style:"width:550px; height:30px;" %><br> 
    <%= submit_tag "Search!", :name => nil, class: "btn btn-primary btn-lg", style: "margin-top:10px" %> 
</p> 

任何帮助,为什么我得到这个错误将不胜感激。如果您需要更多信息,请告诉我。

回答

0

在进行单一模型搜索时,您要将结果呈现在相关控制器的相同索引页中,例如,让我们将文章模型作为gem文档(articles_controller.rb)。

def index 
    @search = Article.search do 
     fulltext params[:search] 
     with(:published_at).less_than(Time.zone.now) 
    facet(:publish_month) 
    with(:publish_month, params[:month]) if params[:month].present? 
    end 
    @articles = @search.results 
end 

它将呈现在同一文章索引页面中。

因为,现在你已经创建了一个共同的搜索控制器,则需要在views>search>index.html.erb并显示结果在页面来创建此index操作分离视图或使现有模板,如果可以使用render :=> "your_view"使用。

+0

非常感谢你 – Kathan 2015-03-25 20:38:47

+0

不客气,编程岩! – Kamesh 2015-03-26 13:00:57