是否有一种方法可以将链接放入外部资源中,自动添加基于当前协议的协议?
例如,我想显示来自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