2023 年 8 月 25 日,星期五

本周的 Rails - 8 月 25 日

沃伊切赫发布

嗨,我在此分享一下沃伊切赫,让我们探讨一下过去两周 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 列的模型提供。

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

添加一个选项,默认情况下以沙箱模式启动 Rails 控制台
已添加选项 sandbox_by_default,默认情况下以 sandbox 模式启动 rails 控制台。开启此选项后,必须指定 --no-sandbox 才能以非 sandbox 模式启动 Rails。注意,当 rails 的环境为开发或测试时,此选项会被忽略。

修复 X_FORWARDED_HOST 被授权时的 host 显示问题
修复 HostAuthorization 在阻止 HTTP_HOST 标头时可能显示 X_FORWARDED_HOST 标头值的问题。

你可以在此查看完整的变更列表 here过去一周,有 35 位贡献者 对 Rails 代码库做出贡献!

咱们下次见!

订阅,通过邮件接收这些更新。