我希望能够在Ruby on Rails中获取请求中当前路由的名称。我已经找到了可以访问控制器和请求操作的方法,但我想访问名称的字符串或符号。
例如,如果我有users
资源;
users_path
edit_users_path
我只是想在给定的请求中检索当前路由的名称。
答案 0 :(得分:3)
以下代码将为您提供。
Rails.application.routes.recognize_path(request.request_uri)
请注意,ActionDispatch::Routing::RouteSet
中可能会抛出一些异常(这是从Rails.application.routes
返回的异常),因此请注意这些异常。您可以找到方法here的实现。
答案 1 :(得分:0)
您可以使用以下方法获取操作中的当前网址,但这些方法都不会为您提供users_path
request.original_url # => www.mysite.com/users/1
request.request_uri # = > /users/1
答案 2 :(得分:0)
我不得不使用request.original_fullpath
(Rails 5.2)
答案 3 :(得分:-1)
您可以使用current_page?
方法来实现。
current_page?(user_path(@user))
current_page?(edit_user_path(@user))
以下是链接: current_page? method