【问题标题】:Rails URL generator switch http / httpsRails URL 生成器切换 http / https
【发布时间】:2012-01-02 17:13:25
【问题描述】:

有没有办法在当前协议的基础上自动添加协议的外部资源链接?

例如,我想显示来自 Facebook 的 Graph API 的图像。我希望我能做这样的事情:

image_tag url_for("/1234567/picture", :host => "graph.facebook.com")

所以url_for 只是将协议基于当前请求的协议。

我知道这行得通,但我希望有更好的方法:

image_tag("#{request.protocol}://graph.facebook.com/1234567/picture")

【问题讨论】:

    标签: ruby-on-rails urlhelper


    【解决方案1】:

    您可以将协议选项添加到 url_for。

    image_tag url_for("/1234567/picture", :host => 'graph.facebook.com', :protocol => request.protocol)
    

    或者更好的方法是创建一个名为url_for_same_protocol(或任何你想要的)的助手(如果你经常这样做):

    class ApplicationHelper
      def url_for_same_protocol(url, options)
        options[:protocol] ||= request.protocol
        url_for url, options
      end
    end
    

    .. 然后将您的 url_for 电话替换为 url_for_same_protocol

    【讨论】:

    • 那是我所希望的,但那行不通。 url_for 接受完整的 url 字符串或选项哈希,您可以在其中指定操作、控制器、主机、协议等,但不能同时指定两者
    猜你喜欢
    • 1970-01-01
    • 2015-12-07
    • 2013-01-26
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    相关资源
    最近更新 更多