在 Rails 上快乐的 Ruby 程序员新年!这是 Tim 在此向大家帶來 Rails 在假日和新年期间的最新信息。我们希望您已在这个时间段内得到放松(如果这是您的愿望的话),并且已为 2018 年带来的所有事物做好充分的休息。另一方面,Rails 看到了大量的活动,包括许多错误修复。所以,不用多说了…..
自我们上一期文章以来,有 36 人为 Rails 献上了拉取请求大礼包。其中 6 位是首次贡献!非常感谢大家在通常用于为扩大家庭成员设备执行升级和修复的时间段内所做的贡献。
Ruby 2.5.0 于 2017 年 12 月 25 日发布,带来了许多令人兴奋的变更。Rails 已确认可与这种新型 Ruby 配合使用,因为它已被正式添加到其测试矩阵。
RailsConf 正在为其将于匹兹堡举行的 2018 年大会征集提案。截止日期为 1 月 19 日,所以现在就是提交提案的时候了!
批量 ALTER 支持已经存在于 MySQL 适配器中许多年了。此变更增加了对 PostgreSQL 适配器的支持,这意味着多个列变更现在可以合并到一个语句中。
此变更增加了对 MiniMagick 的 combine_options 的支持,允许 Active Storage 应用将多种选项组合成单个步骤的变更(例如,居中加权裁剪)。
此操作修复了 PostgreSQL 范围类型列中无穷大值无法正确序列化的一个问题。
这修复了一个问题,即当一个对象更改其 belongs_to
关系的目标时,外键无法正确更新。
:attachment
为内容配置ActiveStorage::Blob#service_url
的默认行为是为 disposition
使用 :inline
值。然而,有某些特定的内容类型这样做没有意义。此变更识别这些情况并防止它们继承此默认行为。
此操作修复了一个问题,即在将多个上下文传递给 valid?
、 save
等时,回调不会正确触发。
String#blank?
中增加对多种编码的支持以前,如果你在 UTF-16LE 编码的字符串等内容上调用 String#blank?
,它会引发 Encoding::CompatibilityError
异常。现在,它会返回正确的值!
如果你使用 to
参数调用 assert_changes
,你会惊讶地发现仅仅匹配结果值就足以通过,即使什么都没有改变。此修订解决了该问题,在未发生任何更改时会失败,正如预料的那样。
通常,如果你 select
记录属性的一个子集,然后尝试引用未选中的属性,你将获得 MissingAttributeError
。但是,如果你然后 save
记录并调用同一个属性,你可能会惊讶地得到 nil
。此修订通过始终引发错误修复了该问题。
本周就这样了!尽管这是一个重大问题,但我还是有很多想讨论的更改无法一一列出。但你可以查看 此处 的所有内容!下期再见....