我有一系列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$/}
我有什么想法可以实现这个目标?
答案 0 :(得分: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$/ }
我确信这可以更优雅地重做,所以我愿意改变。它起作用,这是最重要的部分。