星期五,2023 年 8 月 11 日

新版本、Action Mailer 预览空状态、错误修复等等!

作者 gregmolnar

大家好,我是 Greg,为大家带来 Rails 代码库中的最新改动。

推出 Rails 光芒奖:提名现已开始
从 10 月份的 Rails World 开始,Rails 基金会将建立一项庆祝 Rails 光芒奖的新传统,该奖项旨在表彰那些为 Rails 生态系统和社区做出杰出贡献的人员,这些贡献包括卓越的代码、文档、热情或协助,从而帮助他人提高效率、掌握更多知识或获得灵感。
您可在此处提交 2023 年度 Rails 光芒奖提名 在此处

Rails 7.0.7 已发布
Rails 7 有一个新的次要版本,该版本提供了次要修复和改进。

从指南索引页面中移除 Webpacker
作为弃用 Webpacker 的后续行动,该拉取请求从 Rails 指南中移除了 Webpacker。

Action Mailer 预览空状态
当某个应用程序定义了不含任何对应预览的邮件发送器时,请求 GET /rails/mailers 会返回一个页面,其中包含一个空白的 <body> 元素。
类似地,当定义了一个 ActionMailer::Preview 子类,但未声明任何操作时,响应会包含一个几乎为空的页面。
此拉取请求针对这两种情况呈现空状态消息,并链接到 Action Mailer 基础指南。

修复了当請求內容類型為空白時的 NoMethodError。
此拉取请求更改了 MIME 类型查找,以便在调用 rstrip 时使用安全导航操作符,以处理客户端使用空白 Content-Type 头发出请求的情况。

添加了 Arel::FactoryMethods#cast(node, type)
CAST(field as type) 是一个广泛支持的 SQL 函数。此拉取请求通过 cast(field, type) 帮助器添加了对此命名函数的原生 Arel 支持。示例用法

Product.arel_table.cast(product_table[:position], "integer")
# produces: CAST("products"."position" as integer)

fixture_file_upload 方法重命名为 file_fixture_upload
此拉取请求将 fixture_file_upload 方法重命名为 file_fixture_upload,以匹配 file_fixturefile_fixture_path 中单词的顺序。
为了保持向后兼容性,它声明了一个 fixture_file_upload 别名,以便在未来保留该别名。

Active Storage 镜像上传应异步进行
当您在 storage.yml 中定义镜像服务时,镜像上传实际上会内嵌式进行,而不是使用 ActiveStorage::MirrorJob
这会减慢服务中的任何上传,这是因为它的执行 n 次(n 为镜像数),在行内,而不是使用 ActiveStorage::MirrorJob
此 PR 仅将文件同步上传至主服务,然后排队作业异步上传文件至镜像,从而更改此行为。

您可以在 此处 查看整个变更列表。 上周有 22 位贡献者 为 Rails 代码库做出贡献!

下期再见!

订阅,我们将通过邮件向您发送这些更新。