2024 年 6 月 7 日,星期五

全局严格加载模式设置、路由绘制推迟及更多功能

作者 Wojtek

大家好,我是 Wojtek。本周让我们来探索 Rails 代码库中的变化。

Rails 安全版本发布
Rails 版本 6.1.7.8、7.0.8.4、7.1.3.4 和 7.2.0.beta2 已发布,其中包含安全问题修复。

RubyConf 的征稿开启
包括 Rails 在内的所有“Ruby Web 框架”的投稿均会被纳入考虑,因此请准备好你的 Rails 相关投稿!

允许全局设置 strict_loading_mode
通过 config.active_record.strict_loading_mode 设置严格加载汇报模式。默认为“all”。可以将其更改为“n_plus_one_only”,以仅在将导致“N + 1 查询”的加载关联时才汇报。可以在全局范围内或在模型中设置此项。

将路由绘制推迟到第一次请求或调用 url_helper 时
在中间件中执行第一个路由重新加载,或者当路由集的 url_helper 接收路由调用或询问它是否响应路由时。此前,此操作在启动时无条件执行,这会对包含大量路由的大型应用程序不必要地减慢启动时间。

添加 logger gem 的显式依赖项
它是 Ruby 3.5 的捆绑 gem 候选版本,因此如果不包含它,它就会开始发出警告。

重新推出 to_time_preserves_timezone 的弃用
之前的弃用并未向所有用户发出警告,因此继续删除它可能会导致行为发生未经警告的改变。

在 sql.active_record 事件负载中包含当前事务
用例是允许追踪数据库活动,包括按事务对查询进行分组的能力,这要归功于最近添加的 ActiveRecord::Transaction#uuid。稍后通过 nil 处理更改 进行了增强。

修复复合主键预加载关联的 ID 读取器
现在调用具有复合主键的示例关联 author.books.ids 可按预期正常工作。

你可以在此处查看完整的变更清单。上周我们有 30 位贡献者 参与了 Rails 代码库!

下次再见!

订阅,将这些更新邮件发送给你。