终端中显示的Ruby版本不同于;“已安装”;版本
我认为我的代码中有错误是由于使用了旧的Ruby版本。例如,当我在IRB环境中键入终端中显示的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&
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 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
,未发现任何问题或其他返回消息$ 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]