大家好,我是 Wojtek。让我们一起来看看本周 Rails 代码库的变更。
更新 Action View 以使用符合 HTML5 标准的清理器
添加对符合 HTML5 标准的清理器的支持,并在 Rails 7.1 配置中默认使用 Rails::HTML5::Sanitizer,前提是它受支持。Action View 的 HTML 清理器可以通过设置 config.action_view.sanitizer_vendor 来配置。支持的值包括 Rails::HTML4::Sanitizer 或 Rails::HTML5::Sanitizer。
向“url_for”添加“path_params”
现在,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 配置,以便在给定路径上挂载给定的健康检查 Rack 应用程序。当独立挂载 Action Cable 时很有用。
支持 VISUAL 环境变量,并优先于 EDITOR
打开临时文件以编辑加密文件时。
允许通过表单 POST 删除 Active Storage 附件
附件已经可以通过将附件更新为 nil 来删除,例如:User.find(params[:id]).update!(avatar: nil)
但是,表单无法 POST nil 参数,它只能 POST 空字符串。但是,POST 空字符串会导致 ActiveSupport::MessageVerifier::InvalidSignature: mismatched digest 错误,因为它被视为已签名的 blob ID。现在,nil 和空字符串都被视为删除,这允许通过以下方式删除附件:User.find(params[:id]).update!(params.require(:user).permit(:avatar))
您可以在 此处 查看所有更改的完整列表。
上周,我们有 23 位贡献者 为 Rails 代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。