将Michael Hartl的Rails应用程序降级为Rails 2

时间:2012-06-22 22:38:06

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-2

我通过扩展Michael Hartl's Rails 3 tutorial构建(黑客入侵)我的网络应用,但却发现我的网络托管服务需要Rails 2.3.8。我是Ruby / Rails的新手,并且想知道从Rails 3.x降级到Rails 2.x的可行性是多么可行。

不幸的是我的webhost无法升级到Rails 3。

修改

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

3 个答案:

答案 0 :(得分:1)

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

要么

  • 找到支持Rails 3的主机,同时为Rails 4(tee-hee)做好准备
  • 寻找亚马逊或ebay的(很多)书籍,以满足铁路2(此时仍可能占多数)。
  • 使用Heroku - 许多人正在使用Heroku免费上线,然后在需要时更低成本。

关于rails的主要内容是版本快速推进 - 代码结构随每个版本而变化很大。与其他更成熟的技术相比,你必须更加努力地避免技术债务。

答案 1 :(得分:0)

同意“新主持人”的建议。我没有降级应用程序,但我已经完成的升级需要花费数周的大型应用程序。所以我的答案是,我想要尝试并不够可行,而且我多年来一直在使用Rails。

我已经有一个便宜的Dreamhost帐户多年,他们保持最新。我也听说过关于bluehost的好消息。请注意,这两个共享提供商都是“得到你付出的代价”,但如果你重视你的时间,那肯定是7美元,或者不花费月费就不花时间降低应用程序。

答案 2 :(得分:0)

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

祝你好运,但正如之前所说,如果你可以切换你的托管,那么我建议这样做并坚持使用最新版本的rails。