终端中显示的Ruby版本不同于;“已安装”;版本

终端中显示的Ruby版本不同于;“已安装”;版本,ruby,version,rbenv,Ruby,Version,Rbenv,我认为我的代码中有错误是由于使用了旧的Ruby版本。例如,当我在IRB环境中键入rand(0.01..100.0)时,我得到以下结果: irb(main):001:0> rand(0.01..100.0) TypeError: can't convert Range into Integer from (irb):1:in `rand' from (irb):1 from /usr/local/bin/irb:12:in `<main&

我认为我的代码中有错误是由于使用了旧的Ruby版本。例如,当我在IRB环境中键入
rand(0.01..100.0)
时,我得到以下结果:

irb(main):001:0> rand(0.01..100.0) TypeError: can't convert Range into
Integer
        from (irb):1:in `rand'
        from (irb):1
        from /usr/local/bin/irb:12:in `<main>'
然而,这就是我尝试安装2.0.0所做的。请注意,以前我在Macbook上安装了RVM(现在使用的是rbenv),但我相信我已经完全卸载了RVM,并且在我的系统中不再有任何RVM的痕迹

  • 我正在使用自制软件:

    $ brew update   
    Already up-to-date.
    
  • 使用rbenv安装Ruby:

    $ rbenv install 2.0.0-p481 rbenv:
    /Users/GabbAHH//.rbenv/versions/2.0.0-p481 already exists continue
    with installation? (y/N)
    
    当我实际进入本地目录中的这个文件夹时,我确认了2.0.0版本,没有看到任何其他版本

  • 我还向我的终端输入了
    rbenv global 2.0.0-p481
    ,未发现任何问题或其他返回消息

  • 但是,下面是我的RubyGems环境,它显示了较旧的Ruby版本

  • 5) RBENV版本

    $ rbenv versions
      system
    * 2.0.0-p481 (set by /Users/GabbAHH//.rbenv/version)
    
    6) echo$path返回换行符:

    $ echo $path
    
    $
    
    7) 哪个红宝石

    $ which ruby
    /usr/local/bin/ruby
    
    (八)



    那么,尽管如此,为什么我看起来仍然在使用Ruby 1.9.2呢?请告诉我是否有其他信息可以显示以帮助您解决此问题。

    安装新Ruby版本后是否运行了
    $rbenv rehash

    :

    为rbenv已知的所有Ruby可执行文件(即~/.rbenv/versions//bin/)安装垫片。在安装新版本的Ruby或安装提供命令的gem后运行此命令

    下面的部分(水平线下方)帮助解决了我认为问题的症结所在,但我仍然有一些挥之不去的问题。运行rspec时出现这种症状。这似乎仍然与rand方法不能正常工作有关。我确认这可能是我的设置有问题,因为我能够在另一台正确设置的计算机上使用相同的rspec文件测试相同的ruby代码文件,并且rspec通过了所有标准。以前,rand方法在IRB中也未能正确调用,但在部分解决方案(水平线以下)之后,它在IRB中正常工作

     1) valid_triangle? returns true for an equilateral triangle
     Failure/Error: length = rand(0.01..100.0)
     TypeError:
       can't convert Range into Integer
     # ./triangle_side_spec.rb:13:in `rand'
     # ./triangle_side_spec.rb:13:in `block (2 levels) in <top (required)
    
    现在我有一个漂亮的

    ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-darwin13.4.0]
    

    :)

    试试
    rbenvshell2.0.0-p481
    gem env说了些什么?通过编辑和复制/粘贴文本将其附加到问题中。确保格式化输出,使其可读。还有,
    rbenv versions
    echo$PATH
    说了什么?你做了
    rbenv rehash
    吗?@BroiSatse我刚刚输入了那个命令,没有给出任何输出消息,我的ruby-v版本仍然说1.9.2p136I刚刚输入了那个命令,仍然得到了相同的结果。请注意,在输入rehash命令后没有返回任何消息。$rbenv更新$ruby-VRuby 1.9.2p136(2010-12-25修订版30365)[x86_64-darwin10.6.0]注意,这些行是安装的一部分:我认为自制软件发出了一条关于它的信息,但很容易错过。基本上,您将rbenv/bin文件夹设置为在路径中的系统文件夹之前查看,因此它将获得rbenv ruby而不是系统ruby。我会试着为rspec再做一次
    $ $PATH
    bash: /usr/local/bin:/usr/local/sbin:~/bin:/Users/GabbAHH//.rbenv/bin:/Users/GabbAHH//.rbenv/shims:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin: No such file or directory
    
    $ rbenv rehash
    
     1) valid_triangle? returns true for an equilateral triangle
     Failure/Error: length = rand(0.01..100.0)
     TypeError:
       can't convert Range into Integer
     # ./triangle_side_spec.rb:13:in `rand'
     # ./triangle_side_spec.rb:13:in `block (2 levels) in <top (required)
    
    # Path for RBENV
    test -d $HOME/.rbenv/ && PATH="$HOME/.rbenv/bin:$PATH"
    
    # Rbenv autocomplete and shims
    if hash rbenv 2> /dev/null; then
      echo "Initializing rbenv"
      eval "$(rbenv init -)";
    else
      echo "Can't find rbenv";
    fi
    
    ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-darwin13.4.0]