Irb错误:未定义的方法'拆分'

时间:2014-06-22 14:18:17

标签: ruby interpreter irb pry

我最近打开了irb,现在我突然每次运行irb时都会给我这个错误:

load error: /Users/addisonbean/.rvm/rubies/ruby-2.1.2/.irbrc
NoMethodError: undefined method `split' for nil:NilClass
/Users/addisonbean/.rvm/scripts/irbrc.rb:45:in `<top (required)>'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/.irbrc:11:in `<top (required)>'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/irb/init.rb:236:in `load'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/irb/init.rb:236:in `run_config'
/Users/addisonbean/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/irb/init.rb:19:in `setup'
irb(main):001:0>

但是,正如我已经向您展示的那样,它仍然会在所有错误后提示我

这是/Users/addisonbean/.rvm/rubies/ruby-2.1.2/.irbrc中的所有代码(数字是行号)

8  if ENV["rvm_path"].nil?
9    require File.join(ENV["HOME"], "irbrc")
10 else
11   require File.join(ENV["rvm_path"], "scripts", "irbrc")
12 end

我没有〜/ .irbrcw

我希望得到一些帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

查看line 45 of rvm's scripts/irbrc.rb,我们可以发现在split上调用了path。由于某些原因,您的path似乎是nil - 可能是因为其中一个rescue nil块正在运行。

我不建议围绕rvm的内部进行黑客攻击,但看起来你可以通过设置环境变量$rvm_ruby_string来伪装它,因为irbrc.rb在它试图找出它之前检查它。将其设置为“2.1.2”应该与它计算的匹配。

答案 1 :(得分:0)

这些步骤解决了我的问题:

  • 找到当前的红宝石版本
  

ruby​​ -v

示例:

  

ruby​​ 2.1.2p95(2014-05-08修订版45877)[x86_64-darwin13.0]

  • 删除此版本
  

rvm删除2.1.2

  • 再次安装
  

rvm install 2.1.2