【问题标题】:In Rails, how to get current url (but no paths)在 Rails 中,如何获取当前 url(但没有路径)
【发布时间】:2011-07-31 09:33:33
【问题描述】:

如果我在一个 URL 中,例如

http://domain.com/mysite/bla

如何只请求没有路径的 URL?比如

http://domain.com 

【问题讨论】:

  • 这不是重复的,因为作者只想返回带有主机的协议而不是完整的url
  • 你应该接受@fl00r 的回答,这是最好的。

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

如果您不在控制器中,我认为这也很有用。

URI.join(url_for(only_path: false), '/').to_s 

【讨论】:

    【解决方案2】:

    你可以用这个

    <%= request.protocol + request.host_with_port %>
    #=> https://domain.com:3000
    <%= request.protocol + request.host %>
    #=> https://domain.com
    

    从 Rails 3.2 开始你也可以使用

    <%= request.base_url %>
    #=> https://domain.com:3000
    

    【讨论】:

    【解决方案3】:

    如果您的端口可能不是 80,则应包括在内。

    "#{request.protocol}#{request.host_with_port}"
    

    【讨论】:

      【解决方案4】:

      对于协议、域和端口

      <%= "#{request.protocol + request.host}:#{request.port.to_s}" %>
      

      【讨论】:

        【解决方案5】:

        request.host 应该可以解决问题,或者:

        request.port.blank? ? request.host : "#{request.host}: #{request.port}"
        

        如果您也需要包含端口。

        【讨论】:

        • 如果指定则不包括端口
        • request.port.blank? ? request.host : "#{request.host}: #{request.port}"
        【解决方案6】:

        试试这个

        <%=request.scheme + '://' + request.host_with_port%>
        

        如果您想查看请求对象上的所有可用方法,那么

        <%=request.methods.sort%>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-05-02
          • 2020-11-21
          • 2021-07-23
          • 2021-04-12
          • 1970-01-01
          • 2016-06-04
          • 2018-03-11
          • 2019-06-28
          相关资源
          最近更新 更多