我有一些用1.8.6
. 现在我想升级到1.9.2
任何其他稳定的版本。
我在这个脚本中有一些 gems 和 ruby 内置库,所以如果我将它升级到 ruby 1.9.2
,我会遇到什么样的问题?
我有一些用1.8.6
. 现在我想升级到1.9.2
任何其他稳定的版本。
我在这个脚本中有一些 gems 和 ruby 内置库,所以如果我将它升级到 ruby 1.9.2
,我会遇到什么样的问题?
这几个是我在升级时遇到的常见问题:
如果你require local_file
在 1.8.x 中你会发现当前目录已经从加载路径中移除了,1.9.xrequire_relative
就是为此引入的。
字符串的处理方式可能略有不同。
1.9.2 c?
=> c
1.8.7 c?
=> 99
在 1.9.2 中,Array to string 与 1.8.7 Array.inspect 相同,即添加标点符号。
1.9.2 [1,2,3].to_s
=> 1,2,3
1.8.7 [1,2,3].to_s
=> 123
对于 1.9.2 中的旧行为,使用join
1.8.7 中的新行为inspect
。
在 Ruby 中,我们很多人都面临着这些类型的情况,升级到新版本可能会破坏您在旧版本中可以正常工作的代码。
了不起的 Wayne E. Seguin 先生也遇到了这个问题,并创造了一个很好的工具来解决这个问题,称为rvm。
简而言之,rvm 允许您安装不同版本的 ruby (例如 1.8.7 或 1.9.2)并通过简单的
rvm use 1.8.7
你应该去https://rvm.io/学习如何在你的机器上安装 rvm。然后你可以安装你当前的 ruby 版本和你想升级到的那个。在两者之间切换并测试您的脚本是否正常工作。这至少可以为您节省一些时间。