在rails应用程序上升级ruby

时间:2014-07-17 06:11:19

标签: ruby-on-rails ruby upgrade ruby-on-rails-4.1 ruby-2.1

目前我的应用程序在rails 3.1.3&红宝石1.9.3。

我想将我的应用程序升级到rails 4.1&红宝石2.1

有谁能告诉我如何升级rails应用程序?

提前致谢

2 个答案:

答案 0 :(得分:0)

没有特定的升级方法。您可以参考http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html或人们根据个人经历撰写的许多其他博客文章。只是谷歌他们。

http://www.sitepoint.com/get-your-app-ready-for-rails-4/ https://developer.uservoice.com/blog/2012/03/04/how-to-upgrade-a-rails-2-3-app-to-ruby-1-9-3/

然而,请遵循以下几点以使其更容易。一次升级一个。最好先升级你的红宝石,然后在第二个循环中升级。 通过在每个步骤进行测试,因为宝石可能因其依赖性而失败。 手动升级您的宝石并避免bundle update

答案 1 :(得分:0)

除了@shivam的回答。

指南通常不包含所有信息。他们经常不说为什么有些步骤是必要的。

最专业的方法是至少阅读下一个主要版本的发行说明。 Rails遵循语义版本控制,这意味着所有后续的4.x.x版本都不允许引入破坏公共API的更改。

检查Rails 4 Release Notes。注意标记为已弃用的内容以及提取到单独gem的内容。可用的最佳教程是Upgrading to Rails 4截屏视频。

升级中最棘手的部分是从模型中的protected_attributes更改为控制器中的strong_parameters,作为针对质量分配保护的默认机制。 如果您的应用程序已经严重依赖protected_attributes,那么将此保护移到模型之外的每个控制器都是一项艰巨的任务。在这种情况下,建议坚持使用protected_attributes,只需将它们包含为额外的宝石(同名)。

如果发生ruby更新。您几乎可以安全地从1.9.3更新到2.1.2。 Ruby仅在Major版本2之后才跟随semver。如果自1.9.3以来甚至出现了一些不兼容的概率很小,那么你的应用程序就使用了这个功能。我们可以将所有应用程序从1.9.x升级到最后的2.x.x而无需单个ruby代码更改