嗨!我是 Vipul,为您带来本周 Rails 代码库更改的最新信息。
引入 config.dom_testing_default_html_version 并使用 Rails::Dom::Testing 解析测试助手中的 HTML
以前,已为 HTML5 添加了对 Rails::Dom::Testing
的支持。如果我们仍然希望依赖基于 HTML4 的测试,这可能会导致问题。此更改添加了一个新配置选项 config.dom_testing_default_html_version
,以允许用户配置解析测试助手中的 HTML 时使用的 HTML 版本 4/5。
此更改允许使用新语法按行范围筛选测试。例如,以下命令从第 10 行运行到第 20 行的测试。
$ rails test test/models/user_test.rb:10-20
在 Postgres 15+ 中支持 NULLS NOT DISTINCT
此更改为 PostgreSQL 15+ 索引添加了对 NULLS [NOT] DISTINCT
的完全支持。
以前的工作可以创建迁移中的索引,但 schema.rb
中不支持。此外,NULLS [NOT] DISTINCT
的匹配顺序不正确,这可能会导致不一致的架构检测。
John 一直对 .to_json
进行了各种速度改进。此最新更改将 HTML 实体转义的性能提高了约 2 倍。总体而言,这些更改使 .to_json
的性能比 Rails 7.0 快约 4.5 倍。
允许在 ActionRecord::Sanitization#replace_named_bind_variables 中转义字面冒号
此提交添加了在使用命名绑定变量时,允许在 sanitize_sql_*
方法中转义字面冒号字符的功能。例如
sanitize_sql_array(["TO_TIMESTAMP(:date, 'YYYY/MM/DD HH12\\:MI\\:SS')", date: "foo"])
# => "TO_TIMESTAMP('foo', 'YYYY/MM/DD HH12:MI:SS')"
从 Selenium 4.6 开始,Selenium Manager 能够管理 Chrome Driver 的安装和集成。这使 webdrivers
宝石的需求过时。此提交进行了更改,从 Gemfile
模板中省略 webdrivers
宝石依赖,以便新生成的应用不再需要它。
添加 Arel::FactoryMethods#cast(node, type)
CAST(field as type)
是一个广泛支持的 SQL 函数。此 PR 使用 cast(field, type)
助手为该命名函数添加了本机 Arel 支持。
product_table = Product.arel_table
product_table.cast(product_table[:position], "integer")
# => CAST("products"."position" as integer)
许多 CI 工具支持在 UI 中展示系统规格失败截图。此 Pull Request 更改 ActionDispatch::SystemTesting::TestHelpers::ScreenshotHelper
,以便在失败时将截图路径保存到测试元数据中,CI 工具可以使用此截图路径显示截图。
你可以在此处查看完整更改列表。
过去一周,有 27 位贡献者为 Rails 代码库做出了贡献!
我们下次再会!
订阅,我们将把这些更新发送到您的邮箱。