有没有办法放入外部资源的链接,自动添加基于当前协议(protocol)的协议(protocol)?
例如,我想显示来自 Facebook 的 Graph API 的图像。我希望我能做类似的事情:
image_tag url_for("/1234567/picture", :host => "graph.facebook.com")
因此 url_for
只是将协议(protocol)基于当前请求的协议(protocol)。
我知道这行得通,但我希望有更好的方法:
image_tag("#{request.protocol}://graph.facebook.com/1234567/picture")
最佳答案
您可以将协议(protocol)选项添加到 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
。
关于ruby-on-rails - Rails URL 生成器切换 http/https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8703462/