2017 年 5 月 28 日,星期日

本周 Rails 新闻:ActiveSupport::CurrentAttributes、AEAD 等!

由 vipulnsward 发布

你好!

我是 Vipul,为你带来 Rails 的最新消息,地点是希望即将结束的 夏天里的 浦那🔥

本周的 Rails 贡献者!

本周有 36 人为改进 Rails 贡献了力量。
其中六人是第一次贡献!
如果你想帮忙,请查看 问题列表

新增

ActiveSupport::CurrentAttributes 提供线程隔离的属性单例

如果你用过 Devisecurrent_user,你已经接触过 CurrentAttributes 部分提供的功能了,但还有更多!

使用 CurrentAttributes,你可以在 Rails 请求周期中,在 Models、Controllers、Views 等整个系统中访问每个请求的变量。

例如,你可以开始使用 current_user、account 等属性,以及你的系统可能需要的更多属性,而无需将它们传递给不同的方法。

AEAD 加密的 cookies 和 sessions

加密的 cookies 现在使用 AES-GCM,它将认证和加密结合在一个更快的步骤中,并产生更短的密文。

使用 AES CBC HMAC 模式加密的旧 cookies,在通过 action_dispatch.use_authenticated_cookie_encryption 配置值启用新模式时,将无缝升级。

修复

secrets:edit 在尚未运行时运行 secrets:setup

在一个新应用中,如果你在调用 rails secrets:setup 之前执行了 rails secrets:edit,Rails 会抛出错误。

通过此项更改,如果尚未完成,Rails 会为你处理。

修复 Numericality 验证器的回归问题

此更改修复了 Numericality 验证器中的一个回归问题,在该问题中,用户输入十进制列时多出的十进制位数会被数值验证忽略,例如比较 9.189.179. 时。

改进

Active Record 初始化优化

Rails 在 4.2x 到 5.0 版本之间出现了性能回归,在某些情况下,记录初始化速度减慢了 2 倍。

此更改优化了初始化,使 **STI 模型** 的性能提高 **2 倍**,**非 STI 模型** 的性能提高 **1.3 倍**。

本周的更新就到这里了,我们不可能涵盖所有更改,但如果你有兴趣,可以随时查看 提交记录
下周再见!