2017年4月15日 星期六

本周 Rails:钩子、fixtures、fetch_values、数据库连接等!

由 andatki 发布

大家好!我是 Andy,又为大家带来了《本周 Rails》系列。本周我们将涵盖两周的变更,让我们马上开始吧。

新增

action_controller_baseaction_controller_api 添加钩子

此更改将以前的一个 Action Controller 钩子拆分为两个。即 action_controller_baseaction_controller_api。这样可以在启动时加载更少的代码。

无需参数的 Fixture 访问器

您是否需要加载特定类型的全部 fixture?调用不带参数的 fixture 访问器方法将返回所有 fixtures。

HashWithIndifferentAccess 实现 fetch_values

在 Rails 中为 HashWithIndifferentAccess 添加了 fetch_values,这已在 Ruby 2.3.0 中添加。通过使用 method_defined? 条件性地添加了支持。

修复

初始化后清除活动连接

如果您的应用程序使用了大量数据库连接,那么这个变更值得一看。作者表示,在部署此变更后,他们将峰值打开的数据库连接数减少了 13%。

修复 JS 响应解析器中的错误

此更改恢复了接受 ecmascript 进行解析的能力。作者还声明 JS 响应不应修改 DOM。快来看看吧!

改进

改进 before_destroy 的文档

您是否知道 before_destroy 钩子应该在 dependent: destroy *之前*设置才能正常工作?这篇文档说明了这一点。

不要冻结输入字符串

如果您对冻结字符串和 Immutable String 的用法(Matz 说“Ruby 3 中的所有字符串字面量都是不可变的(已冻结)”)的变化感到好奇,请看看这个。

呼!这仅涵盖了四月初的一些变更。还有许多其他很棒的 pull requests 供您浏览,这些 PR 来自 27 位贡献者,其中包括 5 位首次贡献者。做得好!

下周再见!