0

我有一组 rake 路由,我正在尝试提取所有具有 route.conditions[:request_method] 作为 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$/}

任何想法我可以如何实现这一目标?

4

1 回答 1

0

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

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

我相信这可以更优雅地重新设计,所以我愿意接受改变。它有效,这是最重要的部分。

于 2012-08-03T17:40:10.340 回答