2016年3月25日,星期五

本周 Rails:Cables、Mailers、Floats 等!

发布者 toddbealmear

Business Todd 在这里为您带来关于 Rails 组织最新动态的每周简报。

自上次更新以来,我们的许多利益相关者都采取了一系列举措,旨在培养 Rails 体系结构底层组件之间的跨职能协同作用。或者,如果您在看到“跨职能协同作用”或其他我刚才写出的垃圾话时感到眼花缭乱,那么就是说,很多人做了一些事情来让 Rails 变得更好,但结果好坏参半。

打哈欠

我正在主持这次会议,我对自己已经感到厌倦了。我们还是直接开始吧,好吗?

本周 Rails 贡献者

28 位优秀的人士为让 Rails 比上周变得更好做出了贡献。如果您想让您的名字出现在这个名单上,请查看开放的 议题

改进

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

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

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

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

遵循默认 MySQL 模式

Active Record 的严格模式传统上会覆盖 MySQL 的默认模式。但是,保留这些模式可以与其他数据库更好地兼容。在 Rails 5 中,Active Record 将停止覆盖这些默认设置。

改进日期包含验证器

Ruby 2.2+ 中新增的 Range#cover? 可以与 Date 范围一起使用。日期包含验证器已更新,允许 Date 范围使用此方法。

浮点数到十进制转换的疯狂

为了避免在将 Float 强制转换为 Decimal 时舍入到不正确的值,需要在精度之前应用比例。请务必阅读整个提交消息,以了解现有行为可能导致意外问题的摘要。

修复

修复 API 控制器的 reset_session

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

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

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

为 Engine 生成 ApplicationMailer

作为对上周问题 修复 之一的后续,我们现在确保 ApplicationMailer 将在 Engine 中正确生成。

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

使用不存在的键调用 ActiveModel::Errors#include? 会将错误哈希用指定的键和一个空的 Array 作为其值进行污染。本周,该行为已得到纠正。

总结

以上就是本周 Rails 的全部内容。一如既往,有很多我们无法在此涵盖的事情,所以请自行查看 更改

下次再见!