限定只输出匹配到特定控制器的路由规则:
CONTROLLER=schools/ajax rake routes
CONTROLLER=users rake routes
路由测试
你的测试中应该加入路由测试(就和你应用程序的其他部分一样)。Rails 提供三个 内建的断言 被设计来帮助你进行路由的测试。
- assert_generates
- assert_recognizes
- assert_routing
5.2.1 assert_generates 断言
assert_generates 能够对是否生成指定的路径进行断言
assert_generates
"/photos/1"
, {
:controller
=>
"photos"
,
:action
=>
"show"
,
:id
=>
"1"
}
assert_generates
"/about"
,
:controller
=>
"pages"
,
:action
=>
"about"
assert_recognizes 是 assert_generates 的反向断言. 它能够通过指定的位置判断是否与存在的路由规则匹配。
assert_recognizes({
:controller
=>
"photos"
,
:action
=>
"show"
,
:id
=>
"1"
},
"/photos/1"
)
你可以提供一个 :method 参数来指定使用的 HTTP 行为:
assert_recognizes({
:controller
=>
"photos"
,
:action
=>
"create"
}, {
:path
=>
"photos"
,
:method
=>
:post
})
5.2.3 assert_routing 断言
assert_routing 对一个路由双向地进行测试: 它测试的一条路径是否与选项匹配,之后测试选项是否生成路径。因此,这条断言结合了前两个测试方法 assert_generates 和 assert_recognizes.
assert_routing({
:path
=>
"photos"
,
:method
=>
:post
}, {
:controller
=>
"photos"
,
:action
=>
"create"
})