2021年9月27日,星期一

秋天来了,Rails 7 Alpha 2 也来了!🍂

作者:zzak

大家好!Zzak 来报道,带来一期内容“爆棚”的“本周 Rails 要闻”。🍇

开发环境下的服务器时序中间件

这个 PR 于两年半前开始,终于合并到 Rails 了!

一个非常巧妙的功能,它使用 Server-Timing 头部 来发出所有 ActiveSupport::Notifications 的持续时间。然后,您可以在浏览器的网络检查器中查看这些指标。

如果您的模型定义了 #to_s,现在您可以利用此功能,而无需为 link_to 提供第二个参数。

添加对 PostgreSQL 中可延迟外键约束的支持

默认情况下,PostgreSQL 中的外键约束在每个语句后进行检查。这适用于大多数用例,但在父记录插入数据库之前创建关联记录时,会成为一个主要限制。请查看 PR 以获取示例和更多详细信息。

GitHub Codespaces 配置

此 PR 添加了对 GitHub Codespaces 的支持,它允许贡献者轻松启动一个功能齐全的环境,用于创建补丁和测试对 Rails 的更改。

按 Escape 键关闭 Rails Guides 菜单下拉列表

一个受欢迎的 UX 补丁,允许您通过按 Escape 键关闭菜单下拉列表。

改进 Rails Guides 的边距样式

我们总是很感激有人帮助改进我们的文档,尤其是视觉方面,使其在多种设备上阅读都令人愉悦。

修复 Rails Guides 深色模式的差异高亮背景

Rails Guides 的另一个很棒的 UX 补丁,一直很受欢迎。

建议一个与 Turbo + import map 兼容的 CSP

为了让 CSP 与 Turbo 和 import map 配合使用,我们需要生成 nonces。此 PR 更改了生成的 CSP 初始化程序,使其使用每个会话的 nonces,而不是每个请求的 nonces,这会对缓存产生负面影响。

将 Bootstrap 和 Bulma 添加到 CSS 处理器列表中

随着对 cssbundling-rails 更多 CSS 处理器的支持,我们更新了 rails new --help 文本,以包含当前可用的选项。

在 rich_text_area_tag 中不覆盖默认选项

此 PR 允许向 rich_text_area_tag 传递自定义的 direct_upload_urlblob_url_template。在您希望使用自己的控制器来验证请求或执行服务器端验证的情况下。

避免在 pg:dump 中出现注释语句

此 PR 向 pg_dump 添加了 --no-comment 标志,以确保在 PostgreSQL >= 11 中使用时,输出中会省略 COMMENT 语句。

在 Rails new 中要求 selenium-webdriver 的最新发布候选版本

由于 Ruby 版本 >= 3 中删除了“rexml”gem,selenium-webdriver gem 一直在等待一个包含其对标准库 gem 更新依赖的发布。

支持从 Inflector 中清除缩略词

先前尝试清除 Inflector 中的缩略词会因 TypeError 而失败。

允许允许数字参数

ActionController::Parameters 现在允许您指定由数字索引的多个参数。当参数属于数字键时,这可能是必需的。

在认证之前检查基本身份验证凭据

此 PR 修复了在使用 http_basic_authentication_with 时发送无效基本身份验证头部数据时出现的错误。

仅为本地请求呈现 host_authorization 调试视图

此 PR 修复了一个生产环境中调试信息可见的错误,将访问限制为仅限本地请求。

将缺少的 migrate 命令添加到“入门”Rails 指南中

这可能看起来是一个小补丁,但新学习 Ruby on Rails 的人们的贡献是健康的标志。这些更改有助于降低学习难度,并欢迎新贡献者加入社区。

Active Storage:弃用无效的默认内容类型

使用内容类型 image/jpgimage/pjpegimage/bmptext/javascript 创建的 Blob 现在会产生弃用警告,因为这些不是有效的内容类型。

允许通过套接字 URL 配置 PostgreSQL 连接密码

此 PR 允许您使用套接字 URL 指定密码,例如“postgres:///?user=user&password=secret&dbname=app”。

向所有生成的隐藏字段添加 autocomplete=”off”

由于一个 长期存在的 Firefox 错误,此 PR 确保 CSRF 令牌和 HTTP 方法字段等隐藏字段不会在用户不知情的情况下被修改。

向 weekday_options_for_select 添加 beginning_of_week 选项

现在您可以为此选择字段指定一周的开始,而无需依赖 Date.beginning_of_week。

Action Mailer 的 email_address_with_name 现在在 name 为空时返回电子邮件地址

当使用 Action Mailer 发送电子邮件时,引用您要发送给的人的对象可能没有与之关联的姓名。例如,当此字段是您 User 记录的可选字段时。在这种情况下,Action Mailer 现在将使用目标电子邮件地址。

为 rails/mailers/email.html 模板添加缺少的 DOM id

此 PR 将帮助人们通过使用唯一的标识符即时从 DOM 中选择邮件数据来测试其 Mailer Preview 操作。

自上次以来,有 35 人(超过 120 次提交!)为 Rails 做出了贡献。所有更改都可以在 此处 查看。下周再见!