我使用rails 4.1和ruby 2.1.1
一切正常,但是当我运行rails console时,我得到了这个错误
> 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)>'
Run Code Online (Sandbox Code Playgroud)
错误后控制台打开并可以使用.
这是.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')
Run Code Online (Sandbox Code Playgroud)
在控制台中测试时,我得到了这些结果
irb(main):008:0> ENV['GEM_HOME']
=> ""
irb(main):009:0> ENV['GEM_HOME'].split(/\//).last
=> nil
Run Code Online (Sandbox Code Playgroud)
如果我在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"
Run Code Online (Sandbox Code Playgroud)
你知道为什么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
Run Code Online (Sandbox Code Playgroud)
运行rails控制台时崩溃,因为在第41行
ENV['GEM_HOME'].split(/\//).last
Run Code Online (Sandbox Code Playgroud)
如果ENV['GEM_HOME']为空,则返回nil
〜/ .rvm /红宝石/红宝石2.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') rescue nil ) ||
44 (`ruby -v` || '').split(" ")[1].sub('p', '-p')
Run Code Online (Sandbox Code Playgroud)
rvm使用该字符串在控制台中设置提示消息.如果您将bin/spring中的第12行更改为
ENV["GEM_HOME"] = "Spring is great!"
Run Code Online (Sandbox Code Playgroud)
你得到了这个很好的提示
bin/rails c
Loading development environment (Rails 4.1.0)
Spring is great! :001 >
Run Code Online (Sandbox Code Playgroud)
我真的不明白为什么ENV["GEM_HOME"]设置为空字符串.所以,我只是改变它来摆脱错误.我在spring github页面上发布了一个问题.
运行该spring binstub命令时,bin/spring文件的任何更改都会被覆盖
| 归档时间: |
|
| 查看次数: |
5274 次 |
| 最近记录: |