新年快乐,Ruby on Rails 开发者们!我是 Tim。在这个假期和新年期间,我将为大家带来 Rails 的最新动态。我们希望您度过了一个愉快的假期(如果您喜欢的话),并且精力充沛地迎接 2018 年的到来。另一方面,Rails 经历了大量的更新,包括许多许多的 bug 修复。那么,话不多说……
自上一期以来,有 36 位开发者通过 Pull Request 🎁 为 Rails 贡献了力量。其中有 6 位是首次贡献!非常感谢所有在这个通常是为升级和修复家人设备而忙碌的时间里做出贡献的人。
Ruby 2.5.0 已于 2017 年 12 月 25 日发布,带来了许多激动人心的变化。Rails 已确认与此新 Ruby 版本兼容,并已将其正式添加到其测试矩阵中。
RailsConf 正在为其 2018 年在匹兹堡举行的大会征集提案。截止日期是 1 月 19 日,所以现在是提交您提案的最佳时机!
MySQL 适配器多年来一直支持批量 ALTER 操作。此次更改为 PostgreSQL 适配器增加了支持,这意味着现在可以将多个列更改合并到一个语句中。
此更改增加了对 MiniMagick combine_options 的支持,允许 Active Storage 应用如重心裁剪等转换,将多个选项合并到单个步骤中。
此修复解决了在 PostgreSQL 范围类型列中无穷大值未能正确序列化的问题。
此修复解决了当对象更改其 `belongs_to` 关联的目标时,外键未能正确更新的问题。
`ActiveStorage::Blob#service_url` 的默认行为是为 `disposition` 使用 `:inline` 值。然而,对于某些特定内容类型,这并不合适。此更改识别了这些情况,并阻止它们继承此默认行为。
此修复解决了当将多个上下文传递给 `valid?`、`save` 等时,回调未能正确触发的问题。
以前,如果您对一个 UTF-16LE 编码的字符串调用 `String#blank?`,它会引发一个 `Encoding::CompatibilityError` 异常。现在它将返回正确的结果!
如果您使用 `to` 参数调用了 `assert_changes`,您可能会惊讶地发现,即使没有任何改变,仅匹配结果值就足以使其通过。此次修订通过在没有任何改变时失败来修复此问题,这符合预期。
通常,如果您 `select` 了记录属性的子集,然后尝试引用未选择的属性,您将收到一个 `MissingAttributeError`。但是,如果您随后 `save` 了记录并调用了同一属性,您可能会惊讶地发现而是得到 `nil`。此次修订通过始终引发错误来解决此问题。
本周的更新就到这里!尽管这是内容丰富的一期,但正如往常一样,还有许多许多我想提及但无法列出的更改。您可以在 这里 查看所有内容!下次再见……