use*_*832 3 ruby ruby-on-rails
我正在尝试编写一个脚本,它可以列出所有可用的路由,并为每个路由查询控制器和操作名称(有点像 rake 路由)。
如果我运行,Rails.application.routes.routes我可以看到数据都在那里。我似乎无法访问它。
@named_routes=
{"root"=>
#<ActionDispatch::Journey::Route:0x007fc2cb40a598
@app=
#<ActionDispatch::Routing::RouteSet::Dispatcher:0x007fc2cb40b448
@controller_class_names=#<ThreadSafe::Cache:0x007fc2cb40b420 @backend={}, @default_proc=nil>,
@defaults={:trailing_slash=>false, :controller=>"home", :action=>"show"},
@glob_param=nil>,
@constraints={:required_defaults=>[:trailing_slash, :controller, :action], :request_method=>/^GET$/},
@decorated_ast=nil,
@defaults={:trailing_slash=>false, :controller=>"home", :action=>"show"},
Run Code Online (Sandbox Code Playgroud)
我如何使用控制器名称访问隐藏在那里的哈希。
作为一个方面,有没有办法从中确定路径?
如果我正确理解您的问题,这应该有效:
Rails.application.routes.routes.named_routes.values.map(&:defaults)
Run Code Online (Sandbox Code Playgroud)
然后你可以做这样的事情:
Rails.application.routes.routes.named_routes.values.map do |route|
"#{route.defaults[:controller]}#{route.defaults[:action]}"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2834 次 |
| 最近记录: |