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