协慌网

登录 贡献 社区

如何在 Ruby on Rails 中获取当前的绝对 URL?

如何在 Ruby on Rails 视图中获取当前的绝对 URL

request.request_uri仅返回相对 URL。

答案

对于 Rails 3.2 或 Rails 4+

您应该使用request.original_url来获取当前 URL。

这个方法记录在original_url 方法中 ,但是如果你很好奇,那么实现是:

def original_url
  base_url + original_fullpath
end

对于 Rails 3:

您可以编写"#{request.protocol}#{request.host_with_port}#{request.fullpath}" ,因为现在不推荐使用request.url


对于 Rails 2:

您可以编写request.url而不是request.request_uri 。这将协议(通常是 http://)与主机相结合,而 request_uri 则为您提供完整的地址。

我认为 Ruby on Rails 3.0 方法现在是request.fullpath

你可以使用url_for(:only_path => false)