ruby-on-rails - Rails URL 生成器切换 http/https

标签 ruby-on-rails urlhelper

有没有办法放入外部资源的链接,自动添加基于当前协议(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/

相关文章:

mysql - 通过日期时间字段之间的减法来选择模型

ruby-on-rails - 使用 open() 方法在 Rails 中创建/重命名临时文件

ruby-on-rails - 从 Engine 类访问 url_helper

asp.net-core - ASP.NET Core 在启动时解析 url?

ruby-on-rails - 尽管手动请求工作正常,但无法使用 yt gem 读取标题

ruby-on-rails - 如何在 ruby​​ 中使用 next 和 inject

ruby-on-rails - Rails 会自动优化查询吗

c# - 如何将后代 UrlHelper 类注入(inject) WebViewPage 以启用缓存清除?

asp.net-mvc - ASP.NET MVC 中的模拟 Controller.Url.Action(string, string, object, string)

asp.net-mvc - ASP.NET MVC - 路由和 UrlHelper