为什么Rails使用旧版本的Ruby,即使我已经更新了它?

我有一台安装了Ruby 1.8的Ubuntu机器。

我将我的Rails应用程序复制到它,并进行了bundle install 。 它装好了一切。 该应用程序需要Ruby 1.9,因此我下载了Ruby源代码,编译并安装了它。

当我做ruby -v ,我得到ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux] ,但是当我在rails console上执行RUBY_VERSION时,我得到1.8.7 。 当我尝试运行我的Rails应用程序时,它失败了。 我的Rails应用程序使用旧版本的Ruby,即使从控制台和其他任何地方都可以正常工作。 哎呀,我甚至创建了一个新的Rails应用程序,它使用了更新的版本。

有什么想法正在发生什么?

等等……你实际上是从源代码编译的吗? 你很可能在你的控制台路径中有新版本的ruby,但你的应用程序dosnt拥有它。 从系统中卸载ruby并使用RVM,就像管理ruby版本一样。

输入“which ruby​​”和“which irb”

你应该看到一个带有〜/ .rvm /的路径……但是我打赌你在你的系统上有一个旧版本的ruby和irb ..可能在/ usr / bin下

要摆脱这个,你需要在RVM中设置你的默认ruby版本你需要确保RVM设置正确(例如在.bashrc或.bash_profile文件中)

输入“rvm list”..你应该看到这样的东西:

 $ rvm list rvm rubies ruby-1.8.7-p302 [ x86_64 ] => ruby-1.9.2-p0 [ x86_64 ] 

注意:您应该看到指向1.9.2的箭头,表示它是默认版本

如果未设置为默认值,请键入:“rvm –default use 1.9.2”

还要检查“printenv PATH”以检查.rvm目录是否位于PATH中的/ usr / bin之前