2017 年 2 月 25 日星期六

本周 Rails 新闻: 5.1.0.beta1 发布、加密密钥、系统测试以及更多内容!

发布者:gregmolnar

大家好,

我是 Greg,带来了来自 Rails 领域的最新消息。本周我们发行了新版本并进行了多项改进,非常忙碌!

新版 Rails 发布

面向 JavaScript、系统测试、加密密钥等内容,推出了 5.1.0 的第一个 beta 版。
同时我们还发布了 4.2.8 的新稳定版本以及 5.0.2 的候选版本。

Eileen 加入 Rails 核心团队

我们非常高兴欢迎 Eileen M. Uchitelle 加入 Rails 核心团队!

本周 Rails 贡献者

本周有 33 位开发者为 Rails 做出了贡献。如果您想加入这个团队,请查看 问题列表 并贡献一份力量!

新增

自定义 URL 访问器和多态映射

此请求引入对自定义 URL 访问器的支持,并在 routes.rb 中定义自定义多态映射。

Capybara 与 Rails 的集成(又称系统测试)

Rails 现在内置了与 Capybara 的集成,使得系统测试变得更加容易,因为所有设置都由 Rails 进行处理。如需了解详情,请参阅请求拉取中的说明。

加密密钥支持

Rails 引入了密钥加密,其灵感来自 Sekrets Gem。
值得注意的是,加密技术的改进 也即将到来。

改进

在所有 Active Job 信息日志中包括任务 ID

以前,任务在启动或结束执行时不会记录任务 ID,但这种情况已成为过去,使得更容易调试与任务相关的问题。

从现在开始,ActiveSupport::Gzip.decompress 会校验 gzip 页脚中的 CRC。

允许 3 层配置按环境对数据库连接进行分组

对于每个环境,如果您有多个数据库连接,您可以按环境对配置进行分组。查看此评论,了解示例。

委托给 scope,而不是集合代理的 merge!

在没有必要的情况下不使用 merge! 进行性能改进。

修复

在冻结 TimeWithZone 实例之前预加载 to_datetime

在冻结 ActiveSupport::TimeWithZone 实例后,无法调用 to_datetime,因为该值缓存在实例变量中。为了避免这个问题,在冻结发生之前预加载实例变量。

修复 HashWithIndifferentAccess#compat 的 nil 问题

在哈希不包含 nil 值时,HashWithIndifferentAccess#compact 以前返回 nil。此公关修复了此问题。

已弃用

已弃用在引用/类型转换中使用 quoted_id

最初 quoted_id 用于旧的引用机制。现在为此我们使用类型转换机制,因此已弃用 quoted_id。

Rails 本周的消息就到此为止。还有许多其他出色的贡献,这里列举不尽,但随时都能 查看

直到下周 👣