簡體   English   中英

Rails.application.routes列出所有路由並確定控制器

[英]Rails.application.routes list all routes and determine controller

我正在嘗試編寫一個腳本,該腳本可以列出所有可用的路由,並針對每個路由,查詢控制器和操作名稱(有點類似於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"},

我如何使用控制器名稱訪問隱藏在其中的哈希值。

順便說一句,有沒有辦法確定一條路徑呢?

如果我正確理解了您的問題,這應該可以工作:

Rails.application.routes.routes.named_routes.values.map(&:defaults)

然后,您可以執行以下操作:

Rails.application.routes.routes.named_routes.values.map do |route|
  "#{route.defaults[:controller]}#{route.defaults[:action]}"
end      

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM