2024 年 9 月 20 日,星期五

Kamal 2,再见 Sprockets,还有更多!

作者:zzak

大家好,我是 zzak。让我们一起来看看本周 Rails 代码库的改动。

Rails World 2024 下周举行
祝所有前往多伦多的人旅途愉快!所有会议都将被录制并在 Rails YouTube 频道上发布,请订阅以获取通知。

[RF 指南] Active Record 验证
基金会仍在努力更新指南,这次他们已经对 Active Record Validations 指南进行了修订。请查看并帮助他们发现任何问题!

添加为每个控制器使用多个速率限制的能力
通过此 PR,您现在可以在控制器中添加多个 rate_limit 定义。

移除 Sucker Punch Active Job 适配器
Sucker Punch 存在于 ActiveJob 之前,但最终在底层使用了与 async 适配器类似的代码。此适配器将在 Rails 的未来版本中被移除。

开发容器中默认不包含 redis
在 Rails 8 中,新生成的应用程序将默认使用 Solid gem,它不依赖于 Redis。

为 add_enum_value 添加 if_not_exists 选项
此 PR 添加了通过 add_enum_value 添加枚举值时使用 PostgreSQL 选项 IF NOT EXISTS 的支持。

在 instrumenting ActiveSupport::Cache::Store delete 时包含选项
现在 cache_delete.active_supportcache_delete_multi.active_support 事件将包含传递给 delete 方法的选项。

不应再使用 sprockets 启动新应用程序
在生成新的 Rails 应用程序时,--asset-pipeline 标志将不再接受“propshaft”或“sprockets”参数。

Kamal 2 兼容配置
Kamal 2 带来了自动 SSL 和多应用部署功能。以及其他更新,如更简单的构建器、别名和密钥。

在控制台中将“config.active_record.attributes_for_inspect”设置为“:all”
在 Rails 7.2 中,ActiveRecord::Core#inspect 被设为可配置,但人们注意到生产环境的控制台没有显示任何属性。此 PR 将默认值设置为之前预期的行为。

支持一次删除多个表
此 PR 使您能够将多个名称传递给 drop_table 方法。

为 ActionController::Live 使用线程池
正如其名,现在使用线程池来跨请求重用线程。

添加 Parameters#expect 以安全地过滤和要求参数
此 PR 添加了一种处理参数的新方法,为控制操作中期望接收的内容提供了更多控制。

# Before
params.require(:table).permit(:attr)

# After
params.expect(table: [ :attr ])

您可以在 此处查看所有更改列表。 上周我们有 37 位贡献者为 Rails 代码库做出了贡献!

下次再见!

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