2018 年 1 月 8 日,星期一

新年快乐!Ruby 2.5、错误修复,还有更多内容!

作者 imtayadeway

在 Rails 上快乐的 Ruby 程序员新年!这是 Tim 在此向大家帶來 Rails 在假日和新年期间的最新信息。我们希望您已在这个时间段内得到放松(如果这是您的愿望的话),并且已为 2018 年带来的所有事物做好充分的休息。另一方面,Rails 看到了大量的活动,包括许多错误修复。所以,不用多说了…..

本周的贡献者

自我们上一期文章以来,有 36 人为 Rails 献上了拉取请求大礼包。其中 6 位是首次贡献!非常感谢大家在通常用于为扩大家庭成员设备执行升级和修复的时间段内所做的贡献。

Rails CI 矩阵中新增了 Ruby 2.5.0

Ruby 2.5.0 于 2017 年 12 月 25 日发布,带来了许多令人兴奋的变更。Rails 已确认可与这种新型 Ruby 配合使用,因为它已被正式添加到其测试矩阵。

RailsConf 2018 CFP 现已开放

RailsConf 正在为其将于匹兹堡举行的 2018 年大会征集提案。截止日期为 1 月 19 日,所以现在就是提交提案的时候了!

为 PostgreSQL 增加批量 ALTER 支持

批量 ALTER 支持已经存在于 MySQL 适配器中许多年了。此变更增加了对 PostgreSQL 适配器的支持,这意味着多个列变更现在可以合并到一个语句中。

为合并的 MiniMagick 转换增加支持

此变更增加了对 MiniMagick 的 combine_options 的支持,允许 Active Storage 应用将多种选项组合成单个步骤的变更(例如,居中加权裁剪)。

修复 PostgreSQL 范围类型中的无穷大值

此操作修复了 PostgreSQL 范围类型列中无穷大值无法正确序列化的一个问题。

修复逆向关联中的外键更换

这修复了一个问题,即当一个对象更改其 belongs_to 关系的目标时,外键无法正确更新。

针对某些内容类型强制指定 :attachment 为内容配置

ActiveStorage::Blob#service_url 的默认行为是为 disposition 使用 :inline 值。然而,有某些特定的内容类型这样做没有意义。此变更识别这些情况并防止它们继承此默认行为。

修复在多个上下文中执行验证回调

此操作修复了一个问题,即在将多个上下文传递给 valid?save 等时,回调不会正确触发。

String#blank? 中增加对多种编码的支持

以前,如果你在 UTF-16LE 编码的字符串等内容上调用 String#blank?,它会引发 Encoding::CompatibilityError 异常。现在,它会返回正确的值!

修复 assert_changes,始终对更改断言

如果你使用 to 参数调用 assert_changes,你会惊讶地发现仅仅匹配结果值就足以通过,即使什么都没有改变。此修订解决了该问题,在未发生任何更改时会失败,正如预料的那样。

始终针对缺失的属性引发 MissingAttributeError

通常,如果你 select 记录属性的一个子集,然后尝试引用未选中的属性,你将获得 MissingAttributeError。但是,如果你然后 save 记录并调用同一个属性,你可能会惊讶地得到 nil。此修订通过始终引发错误修复了该问题。

本周就这样了!尽管这是一个重大问题,但我还是有很多想讨论的更改无法一一列出。但你可以查看 此处 的所有内容!下期再见....