【问题标题】:Rails - Find out where a url-helper pointsRails - 找出 url-helper 指向的位置
【发布时间】:2014-05-14 22:50:42
【问题描述】:
在 Rails 中,当我有一个带有路径助手的表单(例如 create_admin_shop_voucher_path)并且我想找出它指向的控制器操作时,我会查看 routes.rb:
rake routes | grep 'create_admin_shop_voucher'
但是我该如何为 url-helper 做同样的事情,例如 passed_url ?
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
url
routing
【解决方案1】:
假设您的 RAILS_ROOT/config/routes.rb 文件中有这条路线
获得“通过”=>“通过#index”,:as =>:通过
如果你调用passed_url
rails 将返回整个 url。比如http://localhost:3000/passed
如果你调用passed_path
rails 将返回相对路径/passed
*_url 助手生成一个包含协议和主机的 URL
姓名。 *_path 助手只生成路径部分。
所以,它在您的 RAILS_ROOT/config/routes.rb 文件中的路径相同
在您的情况下,您可以致电 create_admin_shop_voucher_url 和 create_admin_shop_voucher_path。
大多数情况下,您应该使用 _path 风格。如果您需要指定主机或
协议(例如与另一个应用程序或服务交谈),然后使用 _url
味道。
当我想将子域传递给链接时,我使用 _url。