我试图基于路径获取 Controller 和 Action 名称。我有一条路线:
map.resources :permissions
我认为我可以使用:
ActionController::Routing::Routes.recognize_path "/permissions/1"
要获得像这样的哈希:
{ :controller => "permissions", :action => "show" }
返回的实际哈希为:
{ :controller => "permissions", :action => "1" }
如何获得正确的操作名称而不是仅传递我的ID?调度员必须能够以某种方式实现它,否则Rails将无法正常工作,但是我很难确定它是如何实现的。
最佳答案
从Rails 4开始,识别路径的方法现在是Rails.application.routes.recognize_path
而不是ActionController::Routing::Routes.recognize_path
,并且它返回 Controller ,操作和id的哈希,如下所示:
Rails.application.routes.recognize_path(app.edit_somecontroller_path(1))
=> {:controller=>"somecontroller", :action=>"edit", :id=>"1"}
关于ruby-on-rails - Ruby on Rails:根据路径获取 Controller 和 Action 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3457067/