2016-01-28 4 views
5

Jeder Versuch rails console im Stammverzeichnis meiner Rails-Anwendung erzeugt den folgenden Fehler auszuführen:Rails-Konsole Fehler: nicht definierte Methode `jeder‘ für nil: NilClass (NoMethodError)

undefined method `each' for nil:NilClass (NoMethodError)

Der vollständige Stack-Trace:

def each_registered_block(type, &block) 
    klass = self.class 
    while klass.respond_to?(type) 
    # The ':console' type doesn't seem to exist 
    klass.public_send(type).each(&block) 
    klass = klass.superclass 
    end 
end 
:
/Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/railtie.rb:245:in `each_registered_block': undefined method `each' for nil:NilClass (NoMethodError) 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/railtie.rb:224:in `run_console_blocks' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/application.rb:461:in `block in run_console_blocks' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/engine/railties.rb:13:in `each' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/engine/railties.rb:13:in `each' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/application.rb:461:in `run_console_blocks' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/engine.rb:442:in `load_console' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/commands/console.rb:34:in `initialize' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/commands/console_helper.rb:9:in `new' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/commands/console_helper.rb:9:in `start' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/commands/commands_tasks.rb:78:in `console' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/command.rb:20:in `run' 
    from /Users/gnerkus/.rvm/gems/[email protected]/gems/railties-5.0.0.beta1.1/lib/rails/commands.rb:19:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

ich habe den Fehler zu diesem Block in der railtie.rb Datei in dem Rails-lib verfolgt

, die von diesem Block wiederum kommt:

def run_console_blocks(app) #:nodoc: 
    each_registered_block(:console) { |block| block.call(app) } 
end 

ich deinstalliert die spring Juwel und installiert die rubocop gem. Ansonsten enthält meine Gemfile die Standard-Edelsteine.

Meine Ruby-Version ist 2.2.3, die oberhalb der 2.2.2 Version für Rails 5.

Ruby-Version empfohlen ist:2.2.3p173 Rails-Version:5.0.0.beta1.1 RVM Version:1.26.11

+0

können Sie den vollständigen Stack-Trace hinterlassen bitte? –

Antwort

5

Der Fehler wurde verursacht durch die web-console gem wie hier verwiesen: Error when running rails console. web-console war bei der Version 3.1.0 zu dem Zeitpunkt, als dies gemeldet wurde. Die 3.0.0-Version von web-console schien keine Fehler erzeugt zu haben, als rails console ausgeführt wurde.

Sie benötigen eine neuere Version des web-console ist 3.1.1 und größer, um sicherzustellen, wie die Frage hat in der 3.1.1 Version behoben.

+0

Stellen Sie sicher, dies als die akzeptierte Antwort zu markieren – Dbz

+0

Ich werde das tun. Ich muss zwei Tage warten, bevor ich kann. – gnerkus

+2

+1 Ich hatte das gleiche Problem mit 'web-console 3.1.0' mit Rails 4.2.5.1, und der verknüpfte Github Thread half mir. Ein Downgrade auf 3.0 brachte die Konsole wieder zum Laufen. –

-2

Sie benötigen Frühling Juwel für mich

gem install spring --pre 
0

gem install spring gearbeitet zu installieren.

Mein Problem war:

/usr/local/bin/NMONMerge.rb:209:in `block in <main>': undefined method `each' for nil:NilClass (NoMethodError) 
from /usr/local/bin/NMONMerge.rb:191:in `each' 
from /usr/local/bin/NMONMerge.rb:191:in `<main>'