2024 年 9 月 20 日,星期五

Kamal 2,告别 Sprockets,还有更多新功能!

作者:zzak

大家好,我是 zzak。让我们一起来看看本周 Rails 代码库的更新内容。

Rails World 2024 下周举行
祝所有前往多伦多的人旅途愉快!所有演讲内容都将被录制并发布在 Rails YouTube 频道 上,请订阅以便收到通知。

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

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

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

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

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

在检测 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 ])

您可以查看完整的更改列表 这里 过去一周,Rails 代码库有 37 位贡献者

下次再见!

订阅 以接收这些更新邮件。