大家好,我是 Greg,为您带来 Rails 代码库的最新变更。
推出 Rails Luminary 大奖:现已开放提名
从十月份的 Rails World 开始,Rails 基金会将建立一项新的传统,以表彰 Rails Luminaries——那些通过出色的代码、文档、热情或协助为 Rails 生态系统和社区做出贡献的人,从而帮助他人做得更多、学得更多或获得启发。
您可以在 这里 提交您的 2023 年 Rails Luminary 提名。
Rails 7.0.7 已发布
Rails 7 有一个小的更新版本,包含一些小的修复和改进。
从 guides 索引页移除 Webpacker
作为 Webpacker 弃用的后续,在此 pull request 中,它已从 Rails Guides 中移除。
Action Mailer 预览空状态
当应用程序定义了 mailers 但没有相应的预览时,请求 `GET /rails/mailers` 会返回一个页面,其中 `
修复 Content-Type 为空时出现的 NoMethodError
这个 pull request 改变了 mime 类型查找方式,使用了安全导航运算符调用 `rstrip`,以处理当客户端发送请求时 Content-Type 头部为空的情况。
添加 `Arel::FactoryMethods#cast(node, type)`
`CAST(field as type)` 是一个广泛支持的 SQL 函数。这个 pull request 为这个命名函数添加了原生的 Arel 支持,并提供了一个 `cast(field, type)` 辅助方法。使用示例
Product.arel_table.cast(product_table[:position], "integer")
# produces: CAST("products"."position" as integer)
将 `fixture_file_upload` 方法重命名为 `file_fixture_upload`
这个 pull request 将 `fixture_file_upload` 方法重命名为 `file_fixture_upload`,以匹配 `file_fixture` 和 `file_fixture_path` 的单词顺序。
为了保持向后兼容性,它声明了一个 `fixture_file_upload` 别名,并将在未来保留。
Active Storage 镜像上传应该是异步的
当您在 `storage.yml` 中定义 Mirror 服务时,上传到镜像实际上是同步进行的,而不是使用 `ActiveStorage::MirrorJob`。
这会减慢所有到该服务的上传速度,因为它会同步地进行 `n` 次上传(`n` 是镜像的数量),而不是使用 `ActiveStorage::MirrorJob`。
这个 pull request 改变了这种行为,只同步上传文件到主服务,然后将上传文件到镜像的任务添加到队列中异步执行。
您可以 在这里 查看所有变更的完整列表。 过去一周,我们有 22 位贡献者 为 Rails 代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。