2

我有一个需要运行的旧 Rails 应用程序。但我有最新版本的 Rails。

当我尝试运行这个较旧的应用程序时,它说:

缺少 Rails 1.99.0 gem。请 gem install -v=1.99.0 rails

但是当我运行命令时:gem install -v=1.99.0 rails

错误:在本地或存储库中找不到 gem rails

不知道下一步该怎么做。有人可以帮我理解这里发生了什么吗?

我的第二个问题与这个问题有关:我需要恢复到旧版本的 Rails 只是为了运行这个遗留应用程序,这似乎很愚蠢 - 必须有更好的方法来做到这一点?

4

3 回答 3

3

AFAIK,v1.99.0是一种v2.0预发布,所以你可以尝试安装v2.0.x,更改RAILS_GEM_VERSIONconfig/environment.rb运行rake rails:update

如果你仔细想想,它并不像起初看起来那样愚蠢。您使用快速发展的 Web 框架作为 RoR 来制作应用程序。您的选择是:继续以与框架发展速度大致相同的速度开发您的应用程序,或者将 rails gem(以及您的应用程序所依赖的所有其他东西,如 gems、插件)冻结到您的应用程序中,以使其不那么脆弱,无法期待 gem更新。

于 2009-04-28T23:12:19.307 回答
2

关于第二个问题:是的,这很愚蠢。幸运的是,Rails 团队发现了这种愚蠢,并在某些时候让我们能够将应用程序所需的 Rails 库版本(以及特定的 gem 版本)“冻结”到vendor目录中。

冻结你的 Rails 版本:

rake rails:freeze:gems

不久前有一篇很好的博客文章描述了这一点。

于 2009-04-29T08:14:46.133 回答
0

除非您安装和部署 RVM,否则您的安装将回滚您的系统 rails 安装,这将影响您的其他项目。如果您想以这种方式手动管理您的开发环境,您可以先卸载 rails,然后为当前项目安装所需版本的 rails。

但是尝试使用以下语法安装您的 rails gem:

sudo gem install rails -v 1.99.0
于 2012-05-21T18:07:51.047 回答