大家好,我是 Wojtek。让我们探索本周 Rails 代码库的变更。
更新 Action View 以使用 HTML5 标准兼容的清理器
添加对 HTML5 标准兼容的清理器的支持,如果受支持,则在 Rails 7.1 配置中将 Rails::HTML5::Sanitizer
设置为默认值。可以通过设置 config.action_view.sanitizer_vendor
来配置 Action View 的 HTML 清理器。支持的值是 Rails::HTML4::Sanitizer
或 Rails::HTML5::Sanitizer
。
将 “path_params” 添加到 “url_for”url_for
帮助器现在支持一项称为 path_params
的新选项。这可能在以下情况下有用:你只希望添加一个必需的参数,该参数是路由 URL 的一部分,但对于其他路由,不添加无关的查询参数。
在创建 Active Record 对象时给自动填充的列赋值
更改记录创建逻辑以允许 auto_increment
列在创建后立即赋值,无论其与模型主键的关系如何。PostgreSQL 适配器从更改中受益最大,因为它允许在插入行后立即使用 RETURNING
语句向对象分配任意数量的自动填充列。
处理 “simple_format” 帮助器中的 “sanitize_options”
现在可以通过传递的选项配置清除功能。
从 “connects_to” 哈希中设置 “default_shard”
一些应用程序可能不想在连接模型中使用 :default
作为分片名称。不幸的是,Active Record 预期存在 :default
分片,因为它必须假定存在一个分片才能从池管理器中获取正确的连接。与其强制应用程序手动设置它,connects_to
可以从分片哈希中推断出默认分片名,现在将假定第一个分片是你的默认分片。
添加运行状况检查配置
添加 health_check_path
和 health_check_application
配置,以在指定路径上挂载给定的运行状况检查机架应用程序。在单独挂载 Action Cable 时很有用。
支持 VISUAL 环境变量,并优先于 EDITOR
在打开临时文件以编辑加密文件时。
允许通过表单发送移除 Active Storage 附件
附件已经可以通过将附件更新为 nil 来移除,例如:User.find(params[:id]).update!(avatar: nil)
然而,一个表单无法发布一个 nil 参数,它只能发布一个空字符串。但是,发布一个空字符串会导致一个代码 ActiveSupport::MessageVerifier::InvalidSignature: mismatched digest
错误被引发,因为它是被当做一个有符号的 blob id 处理的。现在,nil 和一个空字符串被当做一个删除处理,这允许附件通过如下方式被移除:User.find(params[:id]).update!(params.require(:user).permit(:avatar))
你可以查看 这里 的整个变更列表。
在上周,我们有 23 个贡献者 为 Rails 代码库做出了贡献!
下次见!
订阅 以便收到通过邮件发送给你的这些更新。