[英]Devise routing: is there a way to remove a route from 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.