Rails – 安装了最新的gem,但应用程序已经过时了

我正在研究Bluehost。 我安装了3.2.8 gem的rails,现在我得到了这个:

> gem list --local | grep rails rails (3.2.8) 

但:

 rails --version Rails 2.3.11 

如何让“rails”命令使用最新的gem? 我想这与我的$ PATH变量有关,但我对它几乎一无所知。

此外,gem和rails命令会产生一些如下所示的错误:

 Invalid gemspec in [XXX]: invalid date format in specification: "YYY" 

我不确定这是否已连接(我想知道是什么原因造成了这样的错误)。

尝试运行此命令:

 curl -L https://get.rvm.io | bash -s stable --ruby --rails 

它的作用是安装RVM,它为每个安装的Ruby版本维护单独的gem。 --ruby--rails参数告诉它在安装RVM时安装ruby和rails。 RVM安装会自动更新$ PATH和任何其他必要的环境变量。

在安装结束时,它应该提示您运行:

 source ~/.rvm/scripts/rvm 

这将使这些环境变量立即生效。 或者,您可以退出,然后重新登录。

此时运行rails -vruby -v ,你应该看到它们指向新版本。 从您的RoR应用程序目录运行bundle install ,您需要的所有gem应安装在〜/ .rvm / gems / ruby​​- / gems中。

此时,您可以在安装RVM之前删除/卸载任何gems / rails / ruby​​。

2012年10月17日编辑:没关系我的回答。 即使有可能使用当前安装的Ruby 1.8运行Rails 3.x(请参阅此Stackoverflow问题),您将无法使用Bluehost Shared Hosting运行Ruby 1.9.x. 您唯一的选择(目前)是VPS主机。

原因是Passenger Phusion与/ usr / lib中安装的Ruby版本相关联,如果没有root访问权限,您无法更改。 即使您可以使用RVM安装任何版本的Ruby,也不会让Passenger与之通信,因此您的rails项目将不会使用它的gem。