2016 年 3 月 25 日,星期五

这周的 Rails:Cables、Mailers、Floats 和更多!

作者 toddbealmear

业务 托德携本周 Rails 组织所有动态的每周简报与您见面。

自从我们上次更新以来,我们的许多利益相关者已着手进行多项举措,在 Rails 垂直领域的底层组件之间培育跨职能协同效应。或者,如果你在看到“跨职能协同效应”或我刚刚键入的任何其他垃圾时感到厌倦,那么一大群人做了些事情来改善 Rails 之类的东西。

哈欠

我主持这次会议,而我已经让自己厌烦了。让我们直接进入主题,好吗?

本周的 Rails 贡献者

28 位优秀的开发者帮助让 Rails 比上周变得更优秀。如果您希望看到您的名字出现在此列表上,请查看开放的 议题

已改进

优雅地处理 Action Cable 客户端断开连接

以前,如果客户端强制断开连接,Action Cable 会引发连接复位错误。此更改通过在客户端消失时简单地关闭连接避免了异常情况。

避免在升级过程中安装新 Gem

在运行 rails app:update 时,我们应该避免添加对新 Gem 的依赖关系。之前的更改在 dev 环境配置中添加了一个选项,该选项需要安装 listen Gem。现在,相反,生成器将相关行作为一个注释添加。

尊重默认的 MySQL 模式

Active Record 的严格模式传统上会覆盖 MySQL 的默认模式。然而,保留这些模式会提供更好的与其他数据库的兼容性。在 Rails 5 中,Active Record 将停止覆盖这些默认值。

日期包含验证器的改进

在 Ruby 2.2+ 中,Range#cover? 适用于 Date 范围。日期包含验证器已更新为允许 Date 范围使用此方法。

将 Float 转换为 Decimal 的疯狂

为了避免在将 Float 强制转换为 Decimal 时舍入到不正确的值,需要在精度之前应用刻度。一定要阅读完整的提交消息,以了解现有行为如何可能引发意外问题。

已修复

修复 API 控制器的 reset_session

request.reset_session 依赖于 ActionDispatch::Flash,而 API 控制器中并未包含该依赖项。此更改将该要求移至 Flash 中间件本身。

确保 Action Cable 已加载在应用程序生成器中

此 PR 修复了如果在没有 Active Record 的情况下生成应用程序,将不会正确加载 Action Cable 的问题。

生成引擎的 ApplicationMailer

对于上周问题中 修复 之一的跟进,我们现在能确保 ApplicationMailer 将在引擎中正确生成。

检查错误包含时防止创建键

用一个不存在的键调用 ActiveModel::Errors#include? 会使用指定的键污染错误哈希以及一个空 Array 作为其值。这周,这种行为得到了纠正。

总结

本周的 Rails 相关消息就这些。和往常一样,有很多事情我们无法在这里介绍,所以请自己查看这些 更改

下次再见!