ruby-on-rails – 用于nil的Rails黄瓜未定义方法`config’:NilC
发布时间:2020-12-17 03:21:46 所属栏目:百科 来源:网络整理
导读:我刚刚升级到 ruby 1.9.3-p125(从1.9.3-p0开始).所有测试在升级之前都有效.现在,在运行rake功能时出现以下错误 Using the default profile...undefined method `config' for nil:NilClass (NoMethodError)/home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gem
我刚刚升级到
ruby 1.9.3-p125(从1.9.3-p0开始).所有测试在升级之前都有效.现在,在运行rake功能时出现以下错误
Using the default profile... undefined method `config' for nil:NilClass (NoMethodError) /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-rails-1.3.0/lib/cucumber/rails.rb:17:in `<top (required)>' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/bundler-1.1.3/lib/bundler/runtime.rb:74:in `require' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/bundler-1.1.3/lib/bundler/runtime.rb:74:in `rescue in block in require' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/bundler-1.1.3/lib/bundler/runtime.rb:62:in `block in require' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/bundler-1.1.3/lib/bundler/runtime.rb:55:in `each' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/bundler-1.1.3/lib/bundler/runtime.rb:55:in `require' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/bundler-1.1.3/lib/bundler.rb:119:in `require' /home/map7/pais/config/application.rb:7:in `<top (required)>' /home/map7/pais/config/environment.rb:2:in `require' /home/map7/pais/config/environment.rb:2:in `<top (required)>' /home/map7/pais/features/support/env.rb:8:in `require' /home/map7/pais/features/support/env.rb:8:in `<top (required)>' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/rb_support/rb_language.rb:129:in `load' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/rb_support/rb_language.rb:129:in `load_code_file' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:171:in `load_file' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:83:in `block in load_files!' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:82:in `each' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:82:in `load_files!' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/runtime.rb:175:in `load_step_definitions' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/runtime.rb:40:in `run!' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/cli/main.rb:43:in `execute!' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/lib/cucumber/cli/main.rb:20:in `execute' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/gems/cucumber-1.1.9/bin/cucumber:14:in `<top (required)>' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/bin/cucumber:19:in `load' /home/map7/.rvm/gems/ruby-1.9.3-p194@rails3.2/bin/cucumber:19:in `<main>' rake aborted! Command failed with status (1): [/home/map7/.rvm/rubies/ruby-1.9.3-p194/bin...] Tasks: TOP => features => cucumber => cucumber:ok (See full trace by running task with --trace) 我将其追溯到rails.rb文件第17行,如错误中所述: if !Rails.application.config.cache_classes warn "WARNING: You have set Rails' config.cache_classes to false (most likely in config/environments/cucumber.rb). This setting is known to cause problems with database transactions. Set config.cache_classes to true if you want to use transactions. For more information see https://rspec.lighthouseapp.com/projects/16211/tickets/165." end 所以看起来它在黄瓜内找不到Rails.application. 如果我进入控制台’rails c’并输入Rails.application.config,它会返回Configuration对象. 我尝试将我的cucumber-rails宝石升级到1.3.0和黄瓜1.1.9. 解决方法
这可能是cucumber-rails gem的加载订单问题.如果您更新Gemfile而不立即加载它,则稍后将在此过程中要求:
gem "cucumber-rails","1.3.0",:require => false (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |