在rails中,当我有一个带有路径助手的表单时,例如create_admin_shop_voucher_path
,我想找出它指向哪个控制器操作,我会在routes.rb中查找:
rake routes | grep 'create_admin_shop_voucher'
但是我如何对网址助手做同样的事情,例如passed_url
?
假设您的RAILS_ROOT/config/routes.rb
文件中有此路由
> "passed#index", :as => :p
如果您致电passed_url
Rails 将返回整个 URL。例如http://localhost:3000/passed
如果您致电passed_path
轨道将返回相对路径/passed
*_url帮助程序会生成包含协议和主机的 URL名字。 *_path 帮助程序仅生成路径部分。
因此,它与RAILS_ROOT/config/routes.rb
文件中的路由相同
在您的情况下,您可以拨打create_admin_shop_voucher_url
以及create_admin_shop_voucher_path
。
大多数情况下,您应该使用_path口味。如果您需要指定主机或协议(例如与其他应用或服务通信),然后使用_url味道。
例如,当我想将子域传递给链接时,我会使用_url。