2024年12月21日,星期六

恢复 Active Model 的 Normalization 和 Cache Store 获得 session ID 唯一性标志

作者:zzak

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

修复“#to_query”,使其不包含 nil 值的 setter
以保持与 Rack::Utils.parse_nested_query 的行为一致。

# Before
nil.to_query("key") #=> key=
# After
nil.to_query("key") #=> key

当在新的记录上调用“#increment!”时,引发“ActiveRecordError”
#update_columns 的行为类似,对于尚未保存或已销毁的记录,将引发异常。

撤销“ActiveModel::Attributes::Normalization”
在上一期中,我们宣布 ActiveRecord::Normalization 已迁移到 Active Model。
该 PR 被撤销了,因为 API 尚未就绪,仍在开发中。

为序列化属性添加“:comparable”选项
添加此选项是为了便于在不同编码器之间进行迁移。
有关更多信息,请参阅 API 文档

删除“Range#each”和“Range#step”的 Monkey Patch
从技术上讲,这些方法等同于 Ruby 的原生方法,因此可以安全地移除。

为 Cache Store 添加“check_collisions”选项
添加此新选项是为了应对需要保证 session ID 唯一性的情况。

防止 Active Storage Blob 自动保存附件
此更改对现有应用程序没有影响,但可以确保向记录添加附件不会自动保存它,从而意外触发其他回调。

您可以在 此处 查看完整的更改列表。 上周,共有 24 位贡献者 为 Rails 代码库做出了贡献!

下次再见!

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