这是来自俄勒冈州波特兰市 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,并且正如您所见,它会在版本之间意外失效(或彻底消失)。
虽然它绝对不是生产级™软件,但它仍然非常适合学习和调试目的。趁它还能用,赶紧体验一下吧!
在转储模式时,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 来替代。
有关更多详细信息,请参阅 升级指南。
如果您错过了的话,Rails 5 中的 Active Job 默认为使用“异步”适配器来处理作业(之前的默认值是“内联”适配器)。文档已更新以反映该更改。
本周的 Rails 就写到这里了!和往常一样,还有很多更改,我们这里无法一一列出。如果您有兴趣,请一定要 亲自查看!
下周见!