Переключатель генератора URL Rails http / https - PullRequest
3 голосов
/ 02 января 2012

Есть ли способ добавить ссылки на внешние ресурсы, которые автоматически добавляют протокол на основе текущего протокола?

Например, я хочу показать изображения из API Graph Facebook.Я надеялся, что смогу сделать что-то вроде:

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

Так что url_for просто основывает протокол на протоколе текущего запроса.

Я знаю, что это работает, но я надеюсь, что естьлучший способ:

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

1 Ответ

3 голосов
/ 02 января 2012

Вы можете добавить опцию протокола к 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.

...