Ruby on rails Rails控制台错误:未定义的方法'each';对于nil:NilClass(nomethoderor)

Ruby on rails Rails控制台错误:未定义的方法'each';对于nil:NilClass(nomethoderor),ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,任何试图在我的rails应用程序的根目录中运行rails控制台的尝试都会产生以下错误: nil:NilClass(NoMethodError)的未定义方法“each” 完整堆栈跟踪: /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/railtie.rb:245:in `each_registered_block': undefined method `each

任何试图在我的rails应用程序的根目录中运行rails控制台的尝试都会产生以下错误:

nil:NilClass(NoMethodError)的未定义方法“each”

完整堆栈跟踪:

 /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/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/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/railtie.rb:224:in `run_console_blocks'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/application.rb:461:in `block in run_console_blocks'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/engine/railties.rb:13:in `each'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/engine/railties.rb:13:in `each'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/application.rb:461:in `run_console_blocks'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/engine.rb:442:in `load_console'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/commands/console.rb:34:in `initialize'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/commands/console_helper.rb:9:in `new'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/commands/console_helper.rb:9:in `start'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/commands/commands_tasks.rb:78:in `console'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/commands/commands_tasks.rb:49:in `run_command!'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/command.rb:20:in `run'
  from /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/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>'
这反过来又来自此块:

def run_console_blocks(app) #:nodoc:
  each_registered_block(:console) { |block| block.call(app) }
end
我卸载了
spring
gem并安装了
rubocp
gem。否则,我的
Gemfile
包含默认gem

我的Ruby版本是
2.2.3
,它高于为Rails 5推荐的
2.2.2
版本

Ruby版本:
2.2.3p173
Rails版本:
5.0.0.beta1.1

RVM版本:
1.26.11

错误是由此处引用的
web控制台
gem引起的:<代码>web控制台在报告时的版本为
3.1.0
3.0.0
版本的
web控制台
在执行
rails控制台
时似乎没有产生任何错误


由于问题已在
3.1.1
版本中解决,您需要确保您的
web console
版本为
3.1.1
及更高版本。

您需要安装spring gem

gem install spring  --pre

gem-install-spring
适合我

我的问题是:

/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>'
/usr/local/bin/NMONMerge.rb:209:in'block-in':nil:NilClass(NoMethodError)的未定义方法'each'
from/usr/local/bin/NMONMerge.rb:191:在'each'中
from/usr/local/bin/NMONMerge.rb:191:in`'

你能发布完整的堆栈跟踪吗?我会的。我必须等待两天才能完成任务。+1我在使用Rails 4.2.5.1的
WebConsole3.1.0
时遇到了同样的问题,链接的Github线程帮助了我。降级回3.0使控制台重新工作。Rails 4.2.5.1也有同样的问题。但它也可以通过
web控制台的更新版本
3.1.1
进行修复。
/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>'