繁体   English   中英

在 Rails 中获取当前路径名

[英]Get current path name in Rails

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

例如,如果我有一个users资源;

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

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

下面的代码会给你。

Rails.application.routes.recognize_path(request.request_uri)

请注意,在ActionDispatch::Routing::RouteSet (这是从Rails.application.routes返回的Rails.application.routes )中可能会抛出一些异常,因此请注意这些异常。 您可以在此处找到该方法的实现。

您可以使用以下方法在您的操作中获取当前 url,但它们都不会像users_path那样为您提供路由名称

request.original_url # => www.mysite.com/users/1

request.request_uri # = > /users/1

我不得不使用request.original_fullpath (Rails 5.2)

你可以用current_page? 方法来实现这一点。

current_page?(user_path(@user))
current_page?(edit_user_path(@user))

这是一个链接: current_page? 方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM