Неопределенный метод `closed?' для nil:NilClass Ruby on Rails Sunspot
Я потратил более 24 часов, пытаясь понять, что я здесь делаю не так. Не могли бы вы помочь. Это то, что у меня есть.
lyrics_Controller.rb
def index
@search = Sunspot.search(Lyric) do
fulltext params[:search]
end
@lyrics = @search.results
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @lyrics }
end
end
lyrics.rb (модель)
class Lyric < ActiveRecord::Base
has_many :styles
belongs_to :artist
extend FriendlyId
friendly_id :name, :use => :slugged
searchable do
text :name, :body
end
end
на мой взгляд, у меня есть форма поиска, как это.
<%= form_tag lyrics_path, :method => :get do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
Когда я пытаюсь найти, я получаю сообщение об ошибке
NoMethodError в LyricsController#index неопределенный метод `closed?' для nil:NilClass Rails.root: /Users/sigidis/Ruby/stageong
Трассировка приложений | Framework Trace | Приложение Full Trace /controllers/lyrics_controller.rb:10: в `index'
Это журнал.
Запущен GET "/lyrics? Utf8=%E2%9C%93&search=Soweto" для 127.0.0.1 в субботу, 17 сентября. 11:37:04 +0200 2011 ПРЕДУПРЕЖДЕНИЕ О УСТАРЕВАНИИ: class_inheritable_attribute устарел, вместо этого используйте метод class_attribute. Обратите внимание, что их поведение немного отличается, поэтому сначала обратитесь к документации class_attribute. (вызывается из /Users/sigidis/Ruby/stagesong/app/models/lyric.rb:10) ПРЕДУПРЕЖДЕНИЕ ОБ УСТРОЙСТВЕ: class_inheritable_attribute устарело, используйте вместо этого метод class_attribute. Обратите внимание, что их поведение немного отличается, поэтому сначала обратитесь к документации class_attribute. (вызывается из /Users/sigidis/Ruby/stagesong/app/models/lyric.rb:10) Обработка с помощью LyricsController#index в виде параметров HTML: {"utf8"=>"\342\234\223", "search"=>"Соуэто"} Выполнено 500 Внутренняя ошибка сервера в 2 мс
NoMethodError (неопределенный метод closed?' for nil:NilClass):
app/controllers/lyrics_controller.rb:10:in
индекс'
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.9ms) Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.1.0 / lib / action_dispatch / middleware / templates / rescues / _request_and_response.erb (0,7 мс) отображается /Library/Ruby/Gems/1.8/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb в пределах rescues/layout (3.1ms)
Я не уверен, что я делаю неправильно. Может кто-нибудь, пожалуйста, помогите.
Также попробовал это
http://collectiveidea.com/blog/archives/2011/03/08/full-text-searching-with-solr-and-sunspot/
и это http://railscasts.com/episodes/278-search-with-sunspot