在Rails中获取当前路径名称

时间:2014-10-20 12:45:47

标签: ruby-on-rails ruby

我希望能够在Ruby on Rails中获取请求中当前路由的名称。我已经找到了可以访问控制器和请求操作的方法,但我想访问名称的字符串或符号。

例如,如果我有users资源;

  • 如果我转到/ users / 1,我希望能够获得users_path
  • 如果我转到/ users / 1 / edit我希望能够获得edit_users_path

我只是想在给定的请求中检索当前路由的名称。

4 个答案:

答案 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