2024年8月16日,星期五

延迟路由绘制、连接路由助手等

作者:Wojtek

大家好,我是 Wojtek。让我们一起来看看本周 Rails 代码库的变化。

延迟路由绘制
此更改通过中间件或在使用 url_helpers 方法时触发路由的初始重新加载。以前,这会在启动时无条件执行,这可能会不必要地减慢具有大量路由的大型应用程序的启动时间。生产环境等具有 config.eager_load = true 的环境将继续在启动时急切地加载路由。

添加 connect 路由助手
定义一个识别 HTTP CONNECT(和 GET)请求的路由。更具体地说,这会识别 HTTP/1 协议升级请求以及带有协议伪标头的 HTTP/2 CONNECT 请求。

在 SQLite 上批量插入 fixture
以前,每个 fixture 会执行一个插入命令,现在它们被合并到一个单独的批量插入命令中。

更新 PostgreSQL 适配器扩展以包含模式名
如果生成的 enable_extension 语句与当前模式不同,模式转储器现在将在其中包含模式名。

为 JSON 编码器添加 escape_html_entities 选项
这允许覆盖 ActiveSupport.escape_html_entities_in_json 中的全局配置,用于特定的 to_json 调用。这可以从控制器中按以下方式使用:

class MyController < ApplicationController
  def index
    render json: { hello: "world" }, escape_html_entities: false
  end
end

删除 racc gem 依赖
ActionDispatch::Journey::Parser 不需要由 racc 生成。这将为将来优化它打开可能性。

支持 minitest 5.25+
Minitest 5.25 更改了 Rails 使用的一个内部方法的签名。

默认在开发环境中启用查询日志标签
这可用于将有问题的 SQL 语句追溯到生成这些语句的应用程序代码。它在使用多个数据库时也很有用,因为查询日志可以标识正在使用的数据库。

修复加密属性的返回类型
以前它总是返回 :text 类型。

当使用无法响应 #to_sym 的键进行加密配置时引发错误
例如,尝试使用 Integer 或 Float 作为键时,这是不支持的。

您可以在 此处查看全部更改列表。 上周,有 31 位贡献者 为 Rails 代码库做出了贡献!

下次再见!

订阅以通过邮件获取这些更新。