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 的 CFP 已开放
包括 Rails 在内的所有Ruby Web 框架的投稿都将被考虑,请准备好您的 Rails 相关投稿!

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

将路由绘制延迟到第一次请求,或在 url_helpers 被调用时
在中间件中执行第一次路由重载,或在路由集 url_helpers 接收到路由调用/询问其是否响应某个路由时执行。之前,此操作在启动时无条件执行,这会不必要地减慢大型应用程序(拥有大量路由)的启动时间。

为 logger gem 添加显式依赖
这是 Ruby 3.5 的一个打包 gem 候选,因此没有它将会发出警告。

重新滚动 deprecation of to_time_preserves_timezone
先前的 deprecation 没有对所有用户发出警告,因此继续移除可能会导致一个未被警告的行为变更。

在 sql.active_record 事件负载中包含当前事务
用例是允许跟踪数据库活动,包括通过事务对查询进行分组的能力,这得益于最近添加的 ActiveRecord::Transaction#uuid。后来通过 nil handling change 得到增强。

修复组合主键的预加载关联上的 IDs 读取器
现在调用一个具有组合主键的示例关联 author.books.ids 会如预期般工作。

您可以在 此处 查看所有更改的列表。 过去一周,有 30 位贡献者 为 Rails 代码库做出了贡献!

下次再见!

订阅以通过邮件获取这些更新。