Rails:从URL解析路由信息

And*_*sov 13 url routing ruby-on-rails

如何解析url字符串以像哈希一样

{:controller => 'controller_name', :action => 'action_name', :id => 'id'}
Run Code Online (Sandbox Code Playgroud)

小智 31

在Rails 3中,您可以执行以下操作:

Rails.application.routes.recognize_path "/accounts/1"
# {:action=>"show", :controller=>"accounts", :id=>"1"}
Run Code Online (Sandbox Code Playgroud)

使用ActionController :: Routing :: Routes.recognize_path不断抛出ActionController :: RoutingError例外:没有路由匹配"/ accounts/1


zet*_*tic 11

您可以使用ActionController::Routing::Routes.recognize_path,具体取决于URL的格式:

>> ActionController::Routing::Routes.recognize_path("/accounts/1",:method=>:get)`
# {:action=>"show":controller=>"accounts",:id=>"1"}
Run Code Online (Sandbox Code Playgroud)