2022 年 5 月 14 日,星期六

更多异步查询、模式匹配以及更多自动关闭的 PR!

发布者 p8

嗨,我是 Petrik,为您带来 Rails 世界的最新消息。

异步汇总和 find_by 查询
活动记录异步支持仅限于加载集合,但在那些可能受益于异步性的非快速查询中,您通常会发现汇总和手工制作的 find_by_sql 查询。
我们现在支持以下方法

  • async_count
  • async_sum
  • async_minimum
  • async_maximum
  • async_average
  • async_pluck
  • async_pick
  • async_find_by_sql
  • async_count_by_sql

允许 CSRF 令牌存储在会话之外

当会话不会存储在 Cookie 中时,可能会创建并持续删除数百万个会话,这会增加 CSRF 令牌的负担。此新配置参数将使得可以将 CSRF 令牌存储在会话之外的地方(即加密 Cookie 中)。

在系统测试截图帮助器中引入了 html: 和 screenshot: kwargs

能够从测试代码中请求 html 或截图更不错,因为这意味着您可以选择性地对每个截图进行此操作,而无需在运行测试时截取/转储 HTML。

支持对具有默认值的列进行加密属性

读取这些列会失败,因为它们的内容未加密。现在,它将在记录创建时对这些值进行加密。

停止自动关闭 PR
虽然通过陈旧消息推送审查者并关闭一段时间内未收到审查的 PR 来清理 PR 列表的想法可以适用于维护人员,但实际上它会阻止贡献者提交贡献。

为 ActiveModel 提供模式匹配

这为哈希模式提供了 Ruby 2.7+ 模式匹配,允许用户匹配包含 ActiveModel::AttributeMethods 模块(例如 ActiveRecord::Base)的任何内容。

避免对矛盾关系进行计算进行查询

以前,即使传递矛盾关系(如 User.where(id: []).count),计算也会进行查询。如今,我们不会在该场景中执行查询。

为应用程序生成器添加 –name 选项

–name 选项会覆盖应用程序名称,使其不同于文件夹名称。

添加 active_record.destroy_association_async_batch_size 配置

这允许应用程序指定由 dependent: :destroy_async 关联选项在单个后台作业中销毁的最大记录数。如果从属记录数大于此配置,则记录将在多个后台作业中销毁。

自上次以来,102 人为 Rails 做出了贡献。与往常一样,这里有太多更改无法涵盖所有内容,但您可以在此处查看所有这些更改。下次再见!