0

我今天遇到了一个问题。在过去的几个月里,我一直在构建一个相当密集的 Rails 3 应用程序,它使用了我需要的所有 gem 的所有最新版本。我刚刚被告知我不能使用任何新的东西。我将把我的项目添加到其他使用旧版本的项目中。我们不能升级现有的,我们只能降级我的。

话虽如此,我需要降级我所做的几乎所有事情。这是我目前正在使用的列表(通过gem list):

actionmailer (3.2.6)
actionpack (3.2.6)
activemodel (3.2.6)
activerecord (3.2.6)
activeresource (3.2.6)
activesupport (3.2.6)
arel (3.0.2)
awesome_print (1.0.2)
builder ( 3.0.0)
bundler (1.1.4)
慢性 (0.6.7)
咖啡导轨 (3.2.2)
咖啡脚本 (2.2.0)
咖啡脚本源 (1.3.3)
erubis (2.7.0)
execjs ( 1.4.0)
git (1.2.5)
远足 (1.2.1)
i18n (0.6.0)
珠宝商 (1.8.4)
旅程 (1.0.4)
jquery-rails (2.0.2)
json (1.7.3)
libv8 ( 3.3.10.4 x86_64-linux)
libxml-ruby (2.3.3)
邮件 (2.4.4)
mime-types (1.19)
multi_json (1.3.6)
nokogiri (1.5.5)
polyglot (0.3.3)
rack (1.4.1)
rack-cache (1.2)
rack-ssl (1.3.2)
rack-test (0.6. 1)
rails (3.2.6)
railties (3.2.6)
rake (0.9.2.2)
rdoc (3.12)
roxml (3.3.1) ruby​​gems
-bundler (1.0.3)
rvm (1.11.3.4)
sass (3.1.20, 3.1.19)
sass-rails (3.2.5)
sprockets (2.1.3)
sqlite3 (1.3.6)
therubyracer (0.10.1)
thor (0.15.4)
倾斜 (1.3.3)
treetop (1.4.10)
tzinfo ( 0.3.33)
uglifier (1.2.6)
每当 (0.7.3)

这是我被允许使用的版本(对于某些宝石);

activesupport (1.0.7)
activerecord (2.3.2)
actionmailer (2.3.2)
activeresource (2.3.2)
actionpack (2.3.2)
rails (2.3.2)
rake (0.8.4)
sqlite3 (1.2.1)
ruby​​gems ( 1.3.1)
nokogiri (1.5.0)

如你所知,我有一些工作要做。我什至不确定我是否使用了第一个列表中的每一个宝石。事实上,我很确定我不是。所以我想第 1 步是删除我实际上没有使用的所有宝石。

一旦我这样做了,完成这项任务的最快/最简单/最好/最有效的方法是什么?

谢谢!

4

1 回答 1

2

我认为最简单的做法是创建一个新的 Rails 2.3.2 应用程序,然后从头开始构建它,但是复制逻辑和模板并在需要的地方安装 Rails 2 版本的 gems,并重写依赖于更新的部分宝石或语法。

真正的问题是为什么不能按原样部署 Rails 3 应用程序?使用 RVM、Rbenv 和 Bundler,应该没有理由不能在同一台服务器上部署不同版本的 Rails(如果这甚至是问题的话)。

于 2012-08-09T16:45:25.010 回答