неопределенный метод `closed? ' для nil: NilClass Ruby on Rails Sunspot - PullRequest
1 голос
/ 17 сентября 2011

Я потратил более 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: in `index '

Это журнал.

Started 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 Внутренняя ошибка сервера в 2ms

NoMethodError (неопределенный метод closed?' for nil:NilClass): app/controllers/lyrics_controller.rb:10:in index '

Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0,9 мс) визуализировано /Library/Ruby/Gems/1.8/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.er0,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

1 Ответ

1 голос
/ 07 октября 2011

Я забыл начать жемчужину солнечного спорта.

...