我希望能夠在Ruby on Rails的請求中獲取當前路由的名稱。我已經找到了可以訪問請求的控制器和操作的方法,但是我想訪問該名稱的字符串或符號。在Rails中獲取當前路徑名稱
例如,如果我有一個users
資源;
- 如果我去/用戶/ 1我希望能夠得到
users_path
- 如果我去/用戶/ 1 /編輯我希望能夠得到
edit_users_path
我只想在給定請求中檢索當前路由的名稱。
我希望能夠在Ruby on Rails的請求中獲取當前路由的名稱。我已經找到了可以訪問請求的控制器和操作的方法,但是我想訪問該名稱的字符串或符號。在Rails中獲取當前路徑名稱
例如,如果我有一個users
資源;
users_path
edit_users_path
我只想在給定請求中檢索當前路由的名稱。
您可以使用下面的方法來獲取你的行動當前的URL,但他們都不會給你路由的名稱,比如users_path
request.original_url # => www.mysite.com/users/1
request.request_uri # = > /users/1
下面的代碼將它送給你。
Rails.application.routes.recognize_path(request.request_uri)
注意,也有一些例外,可以在ActionDispatch::Routing::RouteSet
拋出(這是從Rails.application.routes
返回),所以要小心那些。您可以找到方法here的實施。
在Rails 4中,似乎我不得不使用'request.original_url'來代替。當我查找'new_user_path'時,響應是'{:action =>「new」,:controller =>「users」}'。 – Dwight 2014-10-20 13:38:38
不知道我明白這個問題,但是如果你在你的終端裏輸入耙路徑,它會給你所有的路徑 – Joel 2014-10-20 12:54:42
我知道'rake routes'會列出我的路由,我希望得到單個請求期間的路由。 – Dwight 2014-10-20 13:01:06