【问题标题】:How do I get the current absolute URL in Ruby on Rails?如何在 Ruby on Rails 中获取当前绝对 URL?
【发布时间】:2011-01-11 01:28:19
【问题描述】:

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

request.request_uri 只返回相对的URL

【问题讨论】:

标签: ruby-on-rails ruby url


【解决方案1】:

Rails 4

控制器:

def absolute_url
  request.base_url + request.original_fullpath
end

Action Mailer 4.2 release 的显着变化:

link_to 和 url_for 在模板中默认生成绝对 URL,不再需要传递 only_path: false。 (提交)

查看:

如果使用_url 后缀,则生成的 URL 是绝对的。使用 _path 获取相对 URL。

<%= link_to "Home", root_url %>

欲了解更多详情,请访问:

http://blog.grepruby.com/2015/04/absolute-url-full-url-in-rails-4.html

【讨论】:

  • 不需要自定义方法。正确答案在上面。
【解决方案2】:

对于 Rails 3.x 及更高版本:

#{request.protocol}#{request.host_with_port}#{request.fullpath}

对于 Rails 3.2 及更高版本:

request.original_url

因为在 rails 3.2 及更高版本中:

request.original_url = request.base_url + request.original_fullpath

欲了解更多信息,请访问http://api.rubyonrails.org/classes/ActionDispatch/Request.html#method-i-original_url

【讨论】:

    【解决方案3】:

    您可以通过调用获得绝对网址:

    request.original_url
    

    request.env['HTTP_REFERER']
    

    【讨论】:

      猜你喜欢
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多