加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 运行rails控制台时加载错误

发布时间:2020-12-16 21:39:40 所属栏目:百科 来源:网络整理
导读:我使用的是rails 4.1和 ruby 2.1.1 一切正常,但是当我运行rails控制台我得到这个错误 rails consoleLoading development environment (Rails 4.1.0)load error: /home/andreas/.rvm/rubies/ruby-2.1.1/.irbrcNoMethodError: undefined method `split' for ni
我使用的是rails 4.1和 ruby 2.1.1

一切正常,但是当我运行rails控制台我得到这个错误

> rails console
Loading development environment (Rails 4.1.0)
load error: /home/andreas/.rvm/rubies/ruby-2.1.1/.irbrc
NoMethodError: undefined method `split' for nil:NilClass
    /home/andreas/.rvm/scripts/irbrc.rb:41:in `<top (required)>'

错误后,控制台打开并可以使用.

这是.irbrc文件中的第41行和周围环境.

39 # Calculate the ruby string.
40 rvm_ruby_string = ENV["rvm_ruby_string"] ||
41 (ENV['GEM_HOME'] && ENV['GEM_HOME'].split(///).last.split(/@/).first) ||
42 ("#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}" rescue nil) ||
43 (RUBY_DESCRIPTION.split(" ")[1].sub('p','-p') rescue nil ) ||
44 (`ruby -v` || '').split(" ")[1].sub('p','-p')

我在控制台中测试时得到这些结果

irb(main):008:0> ENV['GEM_HOME']
=> ""
irb(main):009:0> ENV['GEM_HOME'].split(///).last
=> nil

如果我在rails应用程序之外运行irb,我得到

2.1.1 :001 > ENV['GEM_HOME']
 => "/home/andreas/.rvm/gems/ruby-2.1.1" 
2.1.1 :002 > ENV['GEM_HOME'].split(///).last
 => "ruby-2.1.1"

你知道为什么rails应用程序中的环境变量是空白的?

解决方法

如果您遇到此问题,您应该重新启动计算机.如果这不能修复它读.

bin / spring文件将ENV [“GEM_HOME”]设置为空白字符串

斌/春天

11 ENV["GEM_PATH"] = ([Bundler.bundle_path.to_s] + Gem.path).join(File::PATH_SEPARATOR)
12 ENV["GEM_HOME"] = ""
13 Gem.paths = ENV

运行导轨控制台时,这会在第41行中崩溃

ENV['GEM_HOME'].split(///).last

如果ENV [‘GEM_HOME’]为空,则返回nil

?/ .rvm /ruby/ruby2.1.1 / .irbrc

39 # Calculate the ruby string.
40 rvm_ruby_string = ENV["rvm_ruby_string"] ||
41 (ENV['GEM_HOME'] && ENV['GEM_HOME'].split(///).last.split(/@/).first) ||
42 ("#{RUBY_VERSION}-p#{RUBY_PATCHLEVEL}" rescue nil) ||
43 (RUBY_DESCRIPTION.split(" ")[1].sub('p','-p')

rvm使用该字符串在控制台中设置提示信息.
如果将bin / spring中的第12行更改为

ENV["GEM_HOME"] = "Spring is great!"

你得到这个很好的提示

bin/rails c
Loading development environment (Rails 4.1.0)
Spring is great! :001 >

我真的不明白为什么ENV [“GEM_HOME”]设置为空白字符串.所以,我只是改变这个来摆脱错误.我在spring github页面发了一个问题.

谨防!

当您运行spring binstub命令时,bin / spring文件的任何更改都将被覆盖

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读