2023年8月25日,星期五

本周 Rails - 8 月 25 日

作者:Wojtek

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

Rails 版本 7.0.7.2 和 6.1.7.6 已发布
就在上一轮安全版本 7.0.7.1 和 6.1.7.5 发布后不久,此次版本修复了文件权限问题。

MRSK 更名为 Kamal
由于商标侵权纠纷,该项目已更名为 Kamal。

为 Active Job 添加 after_discard 方法
它允许作业作者定义一个块,该块将在作业即将被丢弃时运行。

确保 response.parsed_body 支持模式匹配
NokogiriMinitest 都支持 Ruby 的模式匹配。通过使用 ActiveSupport::HashWithIndifferentAccess 解析 response.parsed_body 的 JSON 内容,现在它兼容模式匹配,并可用于 Minitest 的新 assert_pattern 方法。

为系统测试添加 Playwright 作为驱动程序的支​​持
Playwright 作为一种新的浏览器自动化工具正变得越来越受欢迎。社区中也维护着 Ruby 客户端Capybara 驱动程序

为新的 Rails 7.1 应用生成 config.autoload_lib
新的 7.1 应用将开箱即用,从 lib 目录自动加载。 config/application.rb 中的新行包含:config.autoload_lib(ignore: %w(assets tasks))

允许使用 param_delimiter 重定义 to_param 分隔符
添加了 ActiveModel::Conversion.param_delimiter 来配置 to_param 方法中使用的分隔符。

弃用 read_attribute(:id) 返回主键的行为
从 Rails 7.2 开始,read_attribute(:id) 将返回 id 列的值,而不管模型的主键是什么。要获取主键的值,可以使用 #id 代替。对于复合主键模型,read_attribute(:id) 现在将返回 id 列的值。

使用 alias_attribute 为 id 属性提供 id_value 别名
作为上述更改的后续,添加了 ActiveRecord::Base#id_value 别名来访问记录 id 列的原始值。此别名仅适用于声明了 :id 列的模型。

按字母顺序对邮件预览页面上的邮件程序进行排序

添加一个选项,默认情况下以沙盒模式启动 rails 控制台
添加了 sandbox_by_default 选项,以便默认以沙盒模式启动 rails 控制台。启用此选项后,必须指定 --no-sandbox 才能以非沙盒模式启动 rails。请注意,当 rails 环境为 development 或 test 时,此选项将被忽略。

在 X_FORWARDED_HOST 被授权时修复主机显示
修复 HostAuthorizationHTTP_HOST 标头被阻止时,可能显示 X_FORWARDED_HOST 标头值的问题。

您可以在此处 查看完整的更改列表 在过去一周中,有 35 位贡献者 为 Rails 代码库做出了贡献!

下次再见!

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