ruby-on-rails – Rails控制台错误:未定义的方法`each’代表nil
发布时间:2020-12-16 21:06:19 所属栏目:百科 来源:网络整理
导读:任何在我的Rails应用程序的根目录中运行rails控制台的尝试都会产生以下错误: undefined method `each’ for nil:NilClass (NoMethodError) 完整堆栈跟踪: /Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/r
任何在我的Rails应用程序的根目录中运行rails控制台的尝试都会产生以下错误:
完整堆栈跟踪: /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>' 我已经在Rails lib的railtie.rb文件中跟踪了这个块的错误: 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 反过来来自这个块: def run_console_blocks(app) #:nodoc: each_registered_block(:console) { |block| block.call(app) } end 我卸载了spring gem并安装了rubocop gem.否则,我的Gemfile包含默认的gem. 我的Ruby版本是2.2.3,高于推荐用于Rails 5的2.2.2版本. Ruby版本:2.2.3p173 解决方法
该错误是由此处引用的Web控制台gem引起的:
Error when running rails console.在报告此情况时,web-console的版本为3.1.0.执行rails控制台时,3.0.0版本的Web控制台似乎没有产生任何错误.
您需要确保您的Web控制台版本是3.1.1及更高版本,因为问题已在3.1.1版本中修复. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |