Rails URL生成器切换http / https



是否有一种方法可以将链接放入外部资源中,自动添加基于当前协议的协议?

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

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

使url_for仅基于当前请求的协议。

我知道这是有效的,但我希望有一个更好的方法:

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

您可以在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

相关内容

  • 没有找到相关文章

最新更新