我需要编写完整路径,因此需要知道rails_root域是什么。我怎么做?例如:
string = "{RAILS_ROOT}/vendors/#{@vendor.id}"
“RAILS_ROOT”相当于给我一个完整的域名适用于我的应用程序?那么在开发过程中,它会将localhost:3000和我的heroku网站上的正确完整域替换为什么?
答案 0 :(得分:2)
如果可能的话,您应该始终避免对您的路径进行硬编码,因为它不太灵活,并且在将来更容易导致链接断开。另外,您可以使用Rails路由,这是一种在Rails中生成所有内容的优雅方式,无需自己创建复合部件。
如果您的路线设置正确,您应该可以致电:
link_to "View vendor", vendor_url(@vendor.id)
Rails中的 Vendor_url(@vendor.id)
会为您提供完整的网址,然后您可以在string
变量中包含该网址。以下是如何生成上述所需的路线:
# in routes.rb
resources :vendors
答案 1 :(得分:0)
尝试:
File.realpath(RAILS_ROOT)
答案 2 :(得分:0)
您可以访问请求对象。 request.host_with_port 会为您提供主机名和端口。 request.protocol 会为您提供协议(http://或https://)。 request.fullpath 会为您提供查询参数的路径。