Rails 3:获取当前控制器动作的路由模式

Jus*_*mos 1 routes ruby-on-rails ruby-on-rails-3

有没有办法获得与控制器操作匹配的路由模式?例如,如果我定义了以下路线......

get '/foo/:id.:format' => 'foo#show'
Run Code Online (Sandbox Code Playgroud)

...在FooController#show action中,是否可以获取包含路由模式的字符串(在此示例中为"/foo/:id.:format")?

Jus*_*mos 5

我想到了.这有点像黑客,但这就是我想出来的.只需将其添加到ApplicationController:

def get_route_pattern
  Rails.application.routes.router.recognize(request) { |route| return route.path.spec.to_s }
end
Run Code Online (Sandbox Code Playgroud)