星期六,2016 年 8 月 20 日

rails 本周快讯:阅读本文章学习一个酷技巧™!

发表者:chancancode

这是来自俄勒冈州波特兰市 Godfre,我们本周将涵盖很多内容,让我们立即深入了解这些内容,以便您可以回去观看奥运会!

👀
👅

酷技巧™

路由可视化程序

您是否曾想过当您访问 Rails 应用程序中的 URL(比如 /posts/5)时会发生什么?Rails 路由器如何知道将您的用户发送到哪里?

第一个(其中一个)步骤是将 URL 与路由表进行比较,以查找潜在匹配项。为了尽可能快地进行此查找,路由表已预编译到 有限状态机 中,特别是 不确定有限自动机 (NFA) 中。

如果听起来非常吓人,别担心!Rails 路由器实际上带有一个调试工具,该工具可以生成路由 NFA 的 交互式可视化效果

要为您的应用程序生成一个可视化效果,只需从您的 Rails 控制台运行 Rails.application.routes.router.visualizer 并将返回的字符串保存到一个 html 文件中即可。(您将需要 dot 命令行工具才能执行此操作——OS X 用户可以通过使用 brew install graphviz 从 Homebrew 获得它。)

哦,它还没有工作?我忘记提了,此工具因为一次内部重构而在 Rails 5 中失效。不过别担心,因为 Seth 在此请求中为我们修复了该问题,它将随下一个 5.0 补丁版本一起发布。如果您迫不及待,可以通过运行 5-0-stable 分支来试用它。

在您利用此出色的工具构建您的下一个数十亿美元的初创公司之前,请注意这是一项未记录的(私有! )API,并且正如您所见,它会在版本之间意外失效(或彻底消失)。

虽然它绝对不是生产级™软件,但它仍然非常适合学习和调试目的。趁它还能用,赶紧体验一下吧!

新功能

可选 schema.rb 对齐

在转储模式时,Rails 会尝试从垂直角度对齐所有内容以提高可读性。但是,在对现有表格进行更改时,这可能会导致差异比您想要的更大。通过此 PR,您现在可以关闭这一功能!

控制器测试现在支持 as 选项

虽然现在强烈建议使用 集成测试 来替代控制器测试,但此 PR 允许您使用相同的 as: :json(或 as: :xml 等)选项在控制器测试中模拟请求内容类型。 

retry_on 获得一项新功能

Active Job 的 retry_on API 除了异常对象之外,现在还可以访问失败的作业实例。

touch_later 尊重 no_touching

正如您所期望的那样,no_touching API 现在能与 touch_later 正确结合。

使用数组和范围进行查询

有了这个 PR,您将能够将 Array 或 Range 对象传递给 where(some_column: …) ,前提是您的数据库支持那些列类型。

修复升级任务文档

当涉及到升级 Rails 应用程序时,更新任务将成为您的朋友,这是定期提醒大家注意的事项。在 Rails 5 中,该命令已重命名为 rails app:update,而在升级到 Rails 4.2 及以下版本时,您需要使用 rake rails:update 来替代。

有关更多详细信息,请参阅 升级指南

caso você tenha perdido

Active Job 默认为异步适配器

如果您错过了的话,Rails 5 中的 Active Job 默认为使用“异步”适配器来处理作业(之前的默认值是“内联”适配器)。文档已更新以反映该更改。

总结

本周的 Rails 就写到这里了!和往常一样,还有很多更改,我们这里无法一一列出。如果您有兴趣,请一定要 亲自查看

下周见!