2015-03-25 2 views
1

Наконец-то появился Sunspot, работающий при поиске одной модели, но столкнувшись с некоторыми проблемами при поиске нескольких.Ошибка поиска нескольких моделей с помощью Sunspot 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

Выполняя поиск по одной модели, вы показываете результат на той же странице индекса уважаемого контроллера, например, возьмем модель статьи, как в документе драгоценного камня (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 

Он отобразит результат на той же странице индекса статьи.

Так, теперь вы создали общий контроллер поиска, вам нужно будет создать отдельный вид для этих index действий в views>search>index.html.erb и показать результаты в этой странице или сделать существующий шаблон, если это можно использовать с помощью render :=> "your_view".

+0

Большое спасибо – Kathan

+0

Добро пожаловать, программирование Rocks !! – Kamesh

Смежные вопросы