大家好,我是 zzak。让我们一起来看看本周 Rails 代码库的改动。
弃用在提交后推迟作业队列的行为设置active_job.enqueue_after_transaction_commit 设置已被弃用。此行为不打算全局更改,而是按作业进行更改。
添加支持在生成的 devcontainer 中使用 Kamal
正如标题所示,您现在可以在 devcontainer 中运行 Rails 时使用 Kamal。
修复 enum 标签以接受关键字参数
现在,您可以使用关键字参数定义 enum,而无需额外的括号。
# Before
enum :status, { default: 0, scopes: 1, prefix: 2, suffix: 3 }
# After
enum :status, default: 0, scopes: 1, prefix: 2, suffix: 3
允许重命名 enum 以接受两个“from/to”位置参数,类似于重命名表
此更改使 `rename_enum` 的 API 与 `rename_table` 更加一致。
在 JSON 编码的 IPAddr 中添加前缀地址
如果您使用的是 CIDR 表示法的 IPaddr,现在在与 ActiveSupport::JSON 编码时将包含前缀。
使内部 query() 可重试
此更改利用了延迟连接验证,以减少单次请求中必须验证连接的次数。
修复 Current Attributes 的“attributes”方法,使其每次返回新对象
现在调用 `Current.attributes` 每次都会返回一个新对象。
将“无法连接到服务器”视为 ConnectionNotEstablished
此 PR 更新了 PostgreSQL 适配器,将 `PG::UnableToSend: no connection to the server` 错误视为 `ConnectionNotEstablished` 错误。
修复 strict loading 传播,即使未使用语句缓存
现在即使未使用语句缓存,也会引发 `StrictLoadingViolationError`。
减少 Active Support Duration 的“since”和“ago”中的分配
此更改仅略微减少了分配数量,但如果您正在学习优化和基准测试,这会很有趣。
修复在测试中内容类型设置为 nil 时的“NoMethodError”
这似乎是一个小改动,但此 PR 解决了在测试中设置 `request.content_type = nil` 时的 `NoMethodError`。这似乎是一个容易陷入的陷阱。
您可以在 此处查看所有更改的列表。 上周,有 22 位贡献者对 Rails 代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。