-1

我通过扩展Michael Hartl 的 Rails 3 教程来构建(破解)我的网络应用程序,却发现我的网络托管服务需要 Rails 2.3.8。我是 Ruby/Rails 的新手,想知道从 Rails 3.x 降级到 Rails 2.x 的可行性。

不幸的是,我的虚拟主机无法升级到 Rails 3。

编辑

更具体地说:我的应用程序主要基于上面提到的教程。我正在寻找将 Rails 3 教程应用程序降级为 Rails 2 应用程序所涉及的工作类型。无论如何我都会尝试一下,但由于我对 Ruby / Rails 缺乏经验,所以在开始之前,我只是想知道会发生什么(即,是否会有很多语法更改,或者我是否必须重组文件目录等)

4

3 回答 3

1

你不想这样做,这是一个非常糟糕的主意,你最终会用奇怪的错误消息永远追逐你的尾巴,当你问他们时,你会是一个非常不寻常的案例。

任何一个

  • 寻找支持 Rails 3 的主机,同时为 Rails 4 做好准备 (tee-hee)
  • 从 amazon 或 ebay 上满足 rails 2 的(许多)书籍中寻找(此时可能仍然是大多数)。
  • 使用 Heroku - 许多人使用 Heroku 免费上线,然后在需要更多时以低成本使用。

关于 Rails 的主要问题是版本进展迅速 - 每个版本的代码结构都发生了很大变化。与其他更成熟的技术相比,您必须更加努力地避免技术债务。

于 2012-06-23T03:55:49.610 回答
0

同意“新主人”的建议。我没有降级应用程序,但我在大型应用程序上所做的升级需要数周时间。所以我的回答是,我想尝试它还不够可行,而且我已经使用 Rails 多年了。

多年来,我一直拥有一个廉价的Dreamhost帐户,并且它们保持最新状态。我也听说过有关 bluehost 的好消息。请注意,这两个共享提供商都是“物有所值”,但如果您重视自己的时间,那么它肯定值 7 美元或不花时间降级应用程序的月费。

于 2012-06-23T03:44:58.710 回答
0

如果那是你真正想要的,它可以做到。但这是很多工作。我记得将一个非常大的应用程序从 rails 2 升级到 rails 3。您需要反过来执行此操作。我必须解决 gem 兼容性问题(一些 gem 只适用于 rails 3,现在可能更难获得对 rails 2 的支持),活动记录在过去的版本中有不同的 API,我什至不确定是否有链接特征。例如,代替 Model.where,您通常会编写 Model.find(:conditions => {...}),如果您使用的是出现在 rails 3 中的通用 ajax 助手(带有 :remote => true),那么这些行不通。另外,我还会扫描 rails changelog 以确保在 rails 3 中完成的任何安全补丁。可能是您将不得不在旧版本中自行加强某些地方的安全性。如果您的应用程序测试涵盖了(我希望您这样做:-)),那么旧版本的 rspec 或 cucumber 可能会出现一些问题,但通常这些问题并不大。我认为宝石兼容性是最大的问题。其余的或多或少是机械工作。查找和替换。

祝你好运,但如前所述,如果您可以切换主机,那么我建议您这样做并坚持使用最新版本的 rails。

于 2012-06-23T09:01:11.553 回答