Rails URL 生成器切换 http/https

发布于 2024-12-25 00:21:10 字数 359 浏览 0 评论 0原文

有没有办法放入外部资源的链接,根据当前协议自动添加协议?

例如,我想显示来自 Facebook Graph API 的图像。我希望我可以做类似的事情:

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

这样 url_for 只是将协议基于当前请求的协议。

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

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

Is there a way to put in links to external resources that automatically adds the protocol based on the current protocol?

For example I want to show images from Facebook's Graph API. I was hoping I could do something like:

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

So that the url_for just bases the protocol on the current request's protocol.

I know this works but I'm hoping there's a better way:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苦妄 2025-01-01 00:21:10

您可以将协议选项添加到 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调用。

You can add the protocol option to url_for.

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

or maybe a better way would be to create a helper (if you do this a lot) called url_for_same_protocol (or whatever you want):

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

.. and then just replace your url_for call with url_for_same_protocol.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文