2018 年 5 月 27 日星期日

Enumerable#index_with、事务修复等!

发表于 eugeneius

大家好!我是 Eugene,为您介绍过去两周 Rails 世界中的活动总结。我们开始吧!

本周贡献者

在过去的两周中,Rails 收到了 29 位人士的贡献,包括 10 位首次贡献者。感谢大家!

如果您希望在此处加入,不妨查看 公开问题 列表?

添加 Enumerable#index_with

此新方法会将一个可枚举项转换为一个哈希,其中键为可枚举项的元素,而值由提供的代码块或参数决定。

Action Mailer 现在热加载邮件 gem

在启动过程中加载邮件 gem 避免了让第一个请求承担责任的负担,并且巧妙地绕过了作者在其应用程序中遇到的死锁。

允许 Range#===Range#cover?Range

Active Support 扩展 Range#=== 匹配其他范围,但是对本机 Ruby 实现的更改打破了此规则。此补丁确保该行为可在 Ruby 2.6 上正常运行,并且还将其添加到 Range#cover? 中以作为适当的权宜之计。

xor_byte_strings 的速度提高 70%

此性能补丁中包含的基准显示,每当 Rails 生成 CSRF 令牌时,它节省了足足 5 微秒的时间。🐎

当子项保存失败时回滚父事务

如果某记录的关联包含有效但无法保存的数据,则现在它将无法正确保存并且需回滚事务。

在真实事务后最终确定事务记录状态

当同一事务中某记录多次保存时,如果稍后回滚该事务,则其前一个状态并不总是会立即恢复。

在 SQLite3 适配器中 alter_table 期间禁用外键

使用 SQLite3 适配器时,现在可以成功修改外键所引用的表。

在相关新闻中,Rails 6.0 将要求最低 SQLite 版本为 3.8.0

始终如一的是,Rails 代码库中的变动远比我们在此处介绍的多 - 如果你有兴趣,可以查看 过去两周的完整提交列表。直到下周!