2021 年 6 月 18 日,星期五

Rails 6.0.4 版,Active Storage 满载福利,诸多生活品质优化!

zzak 发布

大家好,我是 zzak,为你介绍上周 Rails 的最新更新。

发布了 Rails 6.0.4 版

此版本包括多个错误修正,务必升级!此处可阅读更新的完整摘要 here

提高 MySQL 中无类型绑定值的安全性

此措施解决了一个 MySQL 的潜在查询操作漏洞。

提升错误配置时多数据库功能的易用性

当 pool_config 为 nil 时使用 config.active_record.writing_role(:all),将抛出有帮助的异常。

增强 Active Record 加密

在 Active Record 中引入加密后,接踵而至的一对新功能与一个错误修正!

增加对 eager 加载 Active Storage variants 的支持

当使用 with_all_variant_records 和 with_attached_* scope 时,此公关请求移除了 Active Storage 中的 N+1 查询。

修复通过关联严格加载的问题

此前,使用 strict_loading 会出现一个错误,eager 加载无法通过关联传播。

在 package.json 内使用当前 Rails 版本

此前,在生成新的 Rails 应用时,package.json 会针对所有 npm 依赖项固化字符串“6.0.0”。此操作现在使用生成该应用的 Rails 版本。

增加对 Active Storage 过期 URL 的支持

此操作通过“expires_in”参数或通过“config.active_storage.urls_expire_in”设置默认值,允许 Active Storage 中已签名 blob id 的 URL 过期。

为 GCS 中的 Active Storage 支持默认“cache_control”

此公关请求增加了一个功能,允许为使用 Google Cloud Storage 服务上传的内容设置默认“cache_control”标题。

使用 FFmpeg 场景检测生成视频预览

通过使用 FFmpeg 内置功能,Active Storage 现在可以为视频生成质量更高的缩略图。这些参数在后续公关请求中还可配置!

弃用意向“purge”和“purge_later”,用法 Active Storage 附件关联模型

您应该直接在附件上调用这些方法,而非在关联上。

增加 Model.update!,类似于 Model.update,但会抛出异常

您可能熟悉实例方法 Model#update!,但现在您可以在类上操作!

CollectionAssocation#build 中的性能下降

此操作将修复关联大量记录时出现的一个严重性能错误。

减少 stat(2) 调用

经典的 nobu。此补丁后来在后续公关请求中进行了优化。

未将 UJS 表单提交处理程序关联到 Turbo 表单

此生活品质改良适用于从 RailsUJS 迁移到 Turbo 的应用,这两个应用均存于代码库内,以便轻而易举地区分应处理表单项的是哪一个。

28人自上次以来已向Rails作出贡献。所有改动都可以在此检阅。直到下周!