2016年7月8日,星期五

🌵 本周狂野 Rails 🌵:Rails 4.2.7/4.1.16,新的标签助手语法等!

由jonatack发布

你好,绝望的人们!

我是 Jon(又名 Juan el bandido),从潘普洛纳🇪🇸附近的纳瓦罗沙漠向你们这些不法之徒问好,带来一期劲爆的《Rails 本周风云》🌵。

我们将回顾过去两周的一些提交。内容相当多,所以请打包好水壶,小心响尾蛇,并且随时点击拉取请求以获取更多信息!

出发!

本周 Rails 贡献者

为本周为 Rails 做出贡献的 38 位英雄牛仔(包括 8 位首次贡献者!)欢呼雀跃!如果你想加入他们,请查看当前问题贡献指南

Rails 4.2.7.rc1 和 4.1.16.rc1 发布,淘金热来袭

本周发布了这两个候选版本。如果发现没有回归,Rails 4.1.16 的最终版本应该很快就会推出。这可能是 Rails 4.1 的最后一个版本,所以请尽快花些时间将你的应用程序升级到 Rails 4.2 或 Rails 5。

Action View 标签助手的新语法

在 DHH 的实现提案基础上,引入了新的标签助手语法糖,默认支持 HTML5 标记并避免了位置参数。有关详细信息和代码示例,请参阅 PR 以及作为基础和讨论的#25289

更新和改进的 Rails 指南

在过去的两周里,我们收到了许多重要的文档贡献,包括完成了Rails 测试指南(好极了!)以及为 Rails 5 进行了更新。

改进

更清晰、更简洁的堆栈跟踪

计划在 Rails 5.1 中实现,此提交旨在清理冗余的堆栈跟踪,只记录与开发人员相关的跟踪。PR 和#25343中的讨论值得一读。

更新 Action View 标签助手属性

此提交将 Action View 标签助手的布尔属性更新到最新的w3.org 规范,同时放弃 autobuffer 而采用 preload,并删除了 pubdate

嵌套时间旅行助手引发错误

测试中嵌套的时间旅行调用可能导致时间存根的混淆。为阻止这种做法,Rails 现在会在嵌套的 traveltravel_to 时间助手调用时引发错误。

修复

解析 JSON 中的日期时使用正确的时区

没有Z的 ISO 8601 格式指定的时间应该被解析为本地时间,但到目前为止它被视为 UTC。此提交通过使用应用程序配置中指定的时区进行解析来解决该问题。此外,YYYY-MM-DD格式现在被解析为Date,而不是像现在这样的DateTime

已移植到 Rails 5-0-stable,因为这是一个潜在的破坏性更改。

使用 as 选项的路由现在可以与 GET 请求一起使用

此修复程序将选项添加到 URL 路径的末尾,而不是查询参数。PR 讨论中包含了一个关于检查对性能的影响和解决此问题的示例。已回溯到 5-0-stable。

不要回收已重新分配的连接

此修复程序确保连接回收器的并发调用不会将同一连接分配给两个线程。已回溯到 5-0-stable。

修复 WebSocket 流写入时的竞态条件

ActionCable::Connection::Stream 现在可以防止多个线程同时写入 WebSocket 连接。已回溯到 5-0-stable。

使用后关闭劫持的 I/O 套接字

当连接关闭时,ActionCable::Connection::Stream 现在可以正确关闭劫持的套接字。已回溯到 5-0-stable。

修复将隐式渲染的模板摘要添加到 ETags

使用 fresh_whenstale? 修改控制器操作的隐式渲染模板现在可以正确地生成新的 ETag 值。

修复 Type::Date#serialize 以一致地返回日期对象

Type::Date#serialize 现在在对日期字段执行 wherefind 查询时,可以正确地将值转换为日期对象。已回溯到 5-0-stable。

新增

用于调试重新加载/执行死锁的新中间件

已回溯到 5-0-stable,此 PR 添加了新的 ActionDispatch::DebugLocks 中间件,可用于诊断自动加载互锁中的死锁。

启用使用 rake notes 处理其他目录

开发人员和 gem 现在可以通过 SourceAnnotationExtractor 注册其他目录(如 /spec),从而使用 rake notes 从这些目录中提取注释。

总结,牛仔们

我的天,我写完了!这就是本期的《Rails 本周风云》🌵。本次改进比我们在这里介绍的要多得多,所以请随意查看一下

下周再见,朋友们!