2012-08-03 57 views
0

我有一个耙路线数组,我试图提取所有具有route.conditions [:request_method]作为GET的路线。收集所有具有方法'GET'的耙路线

问题:

:request_method is a regex (:request_method=>/^GET$/) 

> routes.select { |route| route.conditions[:request_method] == /GET/ } 
> [] 

我想我的选择是正确的。这工作,并输出所有的路线方法:

> routes.each { |route| print route.conditions[:request_method] } 
> {:request_method=>/^GET$/}{:request_method=>/^GET$/}{:request_method=>/^PUT$/}{:request_method=>/^GET$/}{:request_method=>/^PUT$/}{:request_method=>/^POST$/}{:request_method=>/^GET$/}{:request_method=>/^GET$/} 

任何想法,我可能会实现这一点?

回答

0

找到我的答案了。 routes.each返航之旅对象,所以我首先创建自己的自定义哈希:

routes = Rails.application.routes.routes.to_a 
routes = routes.collect { |route| {name: route.name, method: route.verb} } 
routes = routes.select { |route| route[:method] == /^GET$/ } 

我敢肯定,这可以更优雅的返工,所以我愿意接受改变。它起作用了,这是最重要的部分。