ruby-on-rails - Ruby on Rails:根据路径获取 Controller 和 Action 名称

标签 ruby-on-rails rails-routing

我试图基于路径获取 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/

相关文章:

ruby-on-rails - Facebook 开放图谱抓取

ruby-on-rails - Ruby on Rails - 检查提交的表单数据是否与数据库数据匹配

ruby-on-rails - Ruby on Rails 路由别名

ruby-on-rails - 命名空间 Controller 的未定义局部变量或方法 'current_user'

ruby-on-rails - Rails Restful 下载

ruby-on-rails - Net HTTP Persistent/Keep Alive with Ruby OAuth2 gem

ruby-on-rails - gmaps4rails 单标记自动缩放

javascript - 嵌套路由: How to query Rails DB and store values in JavaScript variables?

ruby-on-rails - :new, :collection and :member routes? 有什么区别

ruby-on-rails - Rails 路由——添加自定义路由