查看 Journey Router(即 Rails 4.0 路由器)的 Readme,它是相当空的。我想知道路由器在概念上是如何工作的,以及这个“抽象”语法是否捕获了路由器作为迷你编程语言的想法:
ROUTE := GET|POST|PUT|DELETE path
path := (static_path) | (dynamic_path)
那么,Rails 4.0 路由器是如何工作的呢?
最佳答案
如果您想了解 Rails 路由,最好的起点是边缘指南中的 Rails Routing from the Outside In。
之后,您将有更多的运气查看 ActionDispatch::Routing
的 docs 。
注意:以下内容与 Journey v1.0.4 相关,这是撰写本文时的最新版本。
Journey 本身就是 Rails 3.2 中的 Rails 路由引擎 introduced。在发行说明中,它用一个语句进行了描述:“由于新的 Journey 引擎,路线识别速度也得到了提高。”当然,关于 Journey 的信息并不多,但 Rails 并没有描述每个实现细节;那将需要永远! :) Journey 的 gemspec 也用这样的语句来描述自己:“Journey 是一个路由器。它路由请求。”
您可以查看 api docs ,但在 v1.0.4 中,除了 documented 及其 code itself 和 open 问题之外,它的文档极其稀疏(Journey::Router::Utils.normalize_path(path) 是 closed )。你可以看看另一个 S.O.带有 journey 标签的帖子。
一些代码只是通过方法名称等进行自我描述,就像在 Journey::Routes 中一样。 Journey 的 tests 也是了解其工作原理的好方法。
关于代码本身的一些说明:
rails c
然后 Journey::Path::Pattern.new(9)
)Journey 的 visualizer 可能也很有趣(注意 Journey::GTG::TransitionTable 中的 visualizer 方法)。示例可视化 here 和在线演示 here 现在。
关于ruby-on-rails - Rails 路由器之旅如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16822914/