文档结构  
翻译进度:已翻译     翻译赏金:15 元 (?)    ¥ 我要打赏

Ruby on Rails 5.1.1 版本官方已经发布并且在使用。这个在 5月12日 发布的新版本是一个小更新版本。5.0 版本给 Rails 带来了一些主要的更新,包括使用 Yarn 和 webpack 实现的 JavaScript 能力,使用 Capybara 实现的系统测试,加密功能等等。关于 Rails 5 的全新特性请看 这里 。

你可能已经开始跟团队讨论是否将 Rails 应用升级到 5.0 版本。对一个新项目来说,使用该版本是显而易见的。但是如果是已有的 Rails 应用的话,升级还是需要花费一些时间的。

除了新特性,Rails v5 还带来了很多优势,特别是 Rails 核心团队花了很多精力在提升性能、执行效率以及内存的优化上。

第 1 段(可获 1.63 积分)

使用最新版本的Rails, 您的团队将更好地从组织的服务器资源中挤出更多的价值。

仍然运行在旧版本的Rails上?

如果你还在运行Rails V3。X,现在绝对是开始升级旅程的时候了。 现在V5已经在野外了, 3 x不再接收进一步更新。

我重复一下。 Ruby Rails 3不再支持了。即使对于严重的安全问题。

您不希望等到发现一个重大安全漏洞后才开始将升级过程升级到一个更新的Rails版本。 这将使您的业务和客户脆弱,无论您的团队需要多长时间执行升级。

第 2 段(可获 1.6 积分)

如果你在使用早于4.2.x版本的Rails,要记住迁移到v5将是一个多阶段的升级。你应该每次只升级一个小版本 (比如, 4.1到4.2,再到5.0,而不是4.1直接升级到5.0)。 否则,你将不能充分利用过期警告信息,而因此陷入难以调试的问题,因为这些信息已经彻底被移除了。

如果你已经落后了几个版本,不要绝望的认为你要工作好几个月了! 我们最近升级了一个中型应用 ,从Rails 3.2 到4.2(这是一个三阶段的升级),而且当我们遇到几个棘手的问题(大部分是由于外部gem依赖问题)时,只用了大约30个小时的开发人员时间(就解决了)。

第 3 段(可获 1.73 积分)

升级过程中很难不出问题,Rails 团队为了让这个过程对开发者友好,做了大量出色的工作。随着 Rails 5 发布,Rails 团队一起撰写了从 v4.2 更新到 v5 的指南,详细介绍了破坏性变化,以及近期不赞成的行为。

譬如,如果你在运行 v4.2.x,你的应用会报告一些关于不赞成行为的警告,声明这些行为会在 v5 中被删除掉。

快速提示:开发者可以在开发环境和测试环境设置 ActiveSupport::Deprecation.debug = true,将容易错过的不赞成警告变成不可避免的严重错误,并中止执行。

第 4 段(可获 1.33 积分)

如果未从 v4.2 应用中收到任何不赞成警告,就会有把握平滑升级到 v5!

更新和 Rails Gems

Rails 开发者拒绝保持更新最常见的原因之一就是 Gem 的依赖管理。

如果你的 Ruby on Rails 应用依赖几个外部 Ruby Gem,你可能无法升级。理想情况下,Gem 维护人员会在 v5 预发行版测试他们的项目,这样 Gem 可以完全兼容 v5.0 发行版。但实际上,某些开发(和测试)并不活跃的 Gem 会花些时间才能发布兼容 v5 的 Gem。

第 5 段(可获 1.51 积分)

如果你的团队在贡献资源,多数 Gem 维护者会很愿意从 拉取请求(PR,Pull Request) 中获得对 Rails 5 的支持。在我们的开源社区中,这样的贡献使用 Rails 在这么多年后仍然在发展。你还可以试着检查一下你使用着但尚未支持 Rails 5 的 Gem 的仓库主页。有可能在它们的 Github 中存在一些分支已经支持 Rails 5 了,只是还没完整的测试,所以还未合并到主干上。

不确定的你 Gem 是否可以升级?使用 Ready4Rails 检查你的 Rails Gem,它会告诉你哪些 Gem 已经准备好更新到 4.x 或 5.x。这是贡献知识的另一个伟大场所 —— 他们网站上数量庞大的 Rails Gem 被标记为未知。如果你使用其中一个,并搞清楚了它是否已经可以更新,那就根据你的体验留下评论。

 

第 6 段(可获 2.01 积分)

结论

一般来说,除非您有一个令人信服的理由留在较旧版本的Rails上,否则您应该在资源可用时进行升级。 保持最新更新允许您通过处理更频繁的小型升级而不是罕见的巨大升级来分摊升级成本。想要更多关于升级Rails应用程序的研究? 这里有一些有用的资源。

编辑注意:这篇文章最初于2016年4月4日发布。它的准确性和全面性已经被更新和更新,并且包括Ruby on Rails版本5.x的详细信息。

第 7 段(可获 1.78 积分)

文章评论