各位好,我是 Godfrey,现从俄勒冈州的波特兰向大家报道。本周对我来说可谓是喜忧参半 —— 一方面,受 这场暴风雪的影响,波特兰度过了一个糟糕透顶的星期;但另一方面,Rails 却迎来了许多激动人心的改变。那么,这些改变是否能够让我们一扫阴霾呢?我想还是让我们一起了解一下这些改变,然后由您来决定吧!
上周,我们提到 Rails 5.1 正在加入一个 –yarn 选项。该选项现在已经正式成为默认选项:今后每新建一个 Rails 应用,都会自动将其设置为使用 yarn。值得注意的是,yarn 包 现在安装到了 vendor/node_modules 目录 中。
既然我们提到了 JavaScript,那么自然也要谈一谈资源捆绑。Rails 5.1 将通过 –webpack 选项为 webpack 提供一流的支持。这个选项还处于相当早期的实验阶段,因此一定要尝试一下,并 为改进它贡献一份力量。
朋友不会让朋友将 INT 用作主备键——您的应用在您不知情的情况下可能会达到 Webscale™ 级别,导致主备键列溢出,带来很多麻烦。为了帮助您走上正确的道路,Rails 5.1 将默认使用 BIGINT 作为 MySQL 和 PostgreSQL 中的主备键列。
ActiveRecord::NotNullViolation
错误从此请求合并那天起,如果您的模型因 NOT NULL 约束而保存失败,Rails 将引发 NotNullViolation 错误(而非通用的 StatementInvalid 错误),以便您可以救援此错误并恰当进行处理。
此修补程序修复了这样一个问题:在集成测试之间不必要地重新编译模板,导致速度显著下降。
after_commit
回调以前,某些竞争条件可能导致您的 after_commit 回调的触发频率高于预期。此修补程序尝试更准确地跟踪数据库中实际发生的工作,以确保仅在适当时机触发您的钩子。
block
您是否尝试在模板中使用名为 block 的变量?如果您这样做,您可能会看到 Rails 发出的一个非常奇怪的错误。以后情况不再如此!通过此修补程序,您将能够在没有问题的情况下完成该操作。
subclasses
和 descendants
中排除单例类Ruby 2.3.0 中的一项更改意外更改了 Active Support 的 Class#subclasses 和 Class#descendants 方法的行为,使它们包括单例类。此补丁恢复了以前的行为,并使 Ruby 的不同版本之间的行为再次保持了一致。
本周的 Rails,就聊到这里!还有许多其他出色的贡献,因此请随时 亲自查看!
下周见!