我们给你们送礼物来了!这是 Rails 4.2,最终版本赶在圣诞节准时发布。它充斥着形形色色的好玩物件、实用的工具和精美的外壳,这都要感谢一支美妙的精灵团队,他们好几个月来一直乐此不疲地埋头编码。
这可能也是近来 Rails 测试最充分的一次重大新版本发布。从四个测试版到三个候选版本,都有很多人帮助我们确保捕捉到回归错误和常规错误。从第一个测试版起,我们提交了 1600 多次精心修饰,所以你完全有理由兴奋!
回顾一下,以下是主要新功能的演练
Rails 4.2 的标语特性是全新的 Active Job 框架及其集成。Active Job 是排队系统上方的适配器层,就像 Resque、Delayed Job、Sidekiq 和 更多。你可以将自己的工作写入至 Active Job,它们就可以在所有这些队列中运行,无需任何变更。
始终配置了队列(虽然默认只是 内联执行器),我们可以利用这一配置做一些有意义的事情。最有效的地方就是异步发送操作员邮件。因此,我们引入了 #deliver_later 方法,该方法所做的正是:作为工作将电子邮件添加到队列中进行发送,以便不会拖慢控制器或模型。瞧!
锦上添花的是我们的新 GlobalID 库。该库通过将活动记录对象序列化为通用形式,使其能够轻松传递至工作中。这意味着你不再需要手动打包和解包你的活动记录,通过传递 ID 即可。只需直接将 AR 对象传递给工作,它就会使用 GlobalID 对其序列化,并在运行时对其反序列化。简单多了!
特别感谢 Cristian Bica 和 Abdelkader Boudih,他们为 Rails 三位一体的改进做出了杰出贡献!
Aaron Patterson 一直在 Rails 中寻找性能奖励,而随着 Active Record 的一项名为 Adequate Record 的改进项目,他取得了不俗的成绩。许多常见查询在 Rails 4.2 中至少快了两倍!这是性能方面的一大进步。虽然计算机的成本不断降低,性能不断提高,但没有人会说“嘿,把我的框架中免费的速度去掉”。所以这就有了:免费的加速,朋友!
Rails 活动的 谷歌编码之夏 中出现了 Web 控制台,它为你提供了一个开发控制台,可在所有异常页面上检查事务状态!它甚至允许你在后向跟踪的不同点之间跳转,并且你能够直接在该点检查各个方面。
这是对调试工作流程的出色改进。感谢 Genadi Samokovarov 和 Ryan Dao 在该项目上所做的工作。
Rails 长期以来与外键的关系一直不太平稳,但这段戏剧性的日子已经结束了。如果你希望拥有外键,你就可以拥有外键,Rails 在接收你的订单时仍会面带微笑。迁移 DSL 得到了 add_foreign_key 和 remove_foreign_key,标准 schema.rb 转储器将支持维护这些声明。外键支持最初作为 MySQL 和 PostgreSQL 适配器的独家功能。
以上只是亮点。在此版本中,我们还打包了许多其他功能。你可以在 发行说明 中阅读精彩的摘要。
根据我们的 维护策略,Rails 4.2 的发布意味着错误修复将只适用于 4-2-stable,一般性安全问题适用于 4.2.x、4.1.x,重大安全问题适用于 4.2.x、4.1.x 和 3.2.x。除了上述这些承诺外,尊敬的 Rafael França 还同意对 4-1-stable 应用错误修复。所以仍在使用 4.1 且无法快速迁移的每个人都可以感谢 Rafael!
Rails 4.2 还标志着 4.x 系列中的最后一个重大版本。随着此版本推出,我们现在正致力于重大的 Rails 5.0!这意味着 rails/master 现在针对的是 5.0。
Rails 5.0 的目标是仅针对 Ruby 2.2 及更高版本。在 Ruby 2.2 中将进行大量优化,这些优化非常有用,但对 Rails 最重要的是,它将对符号进行垃圾回收。这意味着当我们接受来自外部世界的输入时,我们能够减少与字符串相关的操作。这也意味着我们可以完全转换为关键字参数,并转换来自最新 Ruby 中的所有其他好东西。
Rails 5.0 的发布目标目前为 2015 年秋季。所以还有一段时间,但我们对此向大家公开,以便宝石维护者和其他 Ruby 实现能够了解我们接下来的目标。当这些目标变得清晰时,我们将制定一些产品路线图介绍这些功能。
能够与令人惊叹的 Ruby on Rails 社区(包括 贡献者 和用户)交流,我一直感到很高兴和荣幸。协作和由此产生的质量从未如此之好。圣诞节和新年快乐,2015 年,我们将推出更多美好的版本,与大家不见不散!