Spec-Zone.ru › Ruby on Rails 4.2

модуль ActionView::Helpers::AssetTagHelper

Включенные модули:
ActionView::Helpers::AssetUrlHelper, ActionView::Helpers::TagHelper

Этот модуль предоставляет методы для генерации HTML-ссылок, связывающих представления с такими ресурсами, как изображения, JavaScript-файлы, таблицы стилей и ленты новостей. Эти методы не проверяют существование ресурсов перед установлением ссылки на них:

image_tag("rails.png")
# => <img alt="Rails" src="/assets/rails.png" />
stylesheet_link_tag("application")
# => <link href="/assets/application.css?body=1" media="screen" rel="stylesheet" />

Общедоступные методы экземпляров

audio_tag(*sources) Показать исходный код
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 299
def audio_tag(*sources)
  multiple_sources_tag('audio', sources)
end

Возвращает HTML-тег аудио для source. source может быть полным путем или именем файла, существующим в вашем общедоступном каталоге аудио.

audio_tag("sound")
# => <audio src="/audios/sound"></audio>
audio_tag("sound.wav")
# => <audio src="/audios/sound.wav"></audio>
audio_tag("sound.wav", autoplay: true, controls: true)
# => <audio autoplay="autoplay" controls="controls" src="/audios/sound.wav"></audio>
audio_tag("sound.wav", "sound.mid")
# => <audio><source src="/audios/sound.wav" /><source src="/audios/sound.mid" /></audio>
auto_discovery_link_tag(type = :rss, url_options = {}, tag_options = {}) Показать исходный код
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 131
def auto_discovery_link_tag(type = :rss, url_options = {}, tag_options = {})
  if !(type == :rss || type == :atom) && tag_options[:type].blank?
    raise ArgumentError.new("You should pass :type tag_option key explicitly, because you have passed #{type} type other than :rss or :atom.")
  end

  tag(
    "link",
    "rel"   => tag_options[:rel] || "alternate",
    "type"  => tag_options[:type] || Mime::Type.lookup_by_extension(type.to_s).to_s,
    "title" => tag_options[:title] || type.to_s.upcase,
    "href"  => url_options.is_a?(Hash) ? url_for(url_options.merge(:only_path => false)) : url_options
  )
end

Возвращает тег ссылки, который браузеры и читатели лент новостей могут использовать для автоматического определения ленты RSS или Atom. type может быть :rss (по умолчанию) или :atom. Управляйте параметрами ссылки в формате url_for, используя url_options. Вы можете изменить сам тег LINK в tag_options.

Параметры

  • :rel - Укажите отношение этой ссылки, по умолчанию «alternate»

  • :type - Переопределите автоматически сгенерированный MIME-тип

  • :title - Укажите заголовок ссылки, по умолчанию type

Примеры

auto_discovery_link_tag
# => <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.currenthost.com/controller/action" />
auto_discovery_link_tag(:atom)
# => <link rel="alternate" type="application/atom+xml" title="ATOM" href="http://www.currenthost.com/controller/action" />
auto_discovery_link_tag(:rss, {action: "feed"})
# => <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.currenthost.com/controller/feed" />
auto_discovery_link_tag(:rss, {action: "feed"}, {title: "My RSS"})
# => <link rel="alternate" type="application/rss+xml" title="My RSS" href="http://www.currenthost.com/controller/feed" />
auto_discovery_link_tag(:rss, {controller: "news", action: "feed"})
# => <link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.currenthost.com/news/feed" />
auto_discovery_link_tag(:rss, "http://www.example.com/feed.rss", {title: "Example RSS"})
# => <link rel="alternate" type="application/rss+xml" title="Example RSS" href="http://www.example.com/feed.rss" />
favicon_link_tag(source='favicon.ico', options={}) Показать исходный код
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 172
def favicon_link_tag(source='favicon.ico', options={})
  tag('link', {
    :rel  => 'shortcut icon',
    :type => 'image/x-icon',
    :href => path_to_image(source)
  }.merge!(options.symbolize_keys))
end

Возвращает тег ссылки для favicon, управляемого pipeline активов.

Если на странице нет ссылки, сгенерированной этим помощником, браузеры автоматически запрашивают /favicon.ico, и кэшируют файл, если запрос успешен. Если favicon изменяется, его сложно обновить.

Для лучшего контроля приложения могут позволить pipeline активов управлять своим favicon, сохраняя файл в app/assets/images, и использовать этот помощник для генерации соответствующего тега ссылки.

Помощник получает имя файла favicon в качестве первого аргумента, по умолчанию «favicon.ico», а также поддерживает параметры :rel и :type, чтобы переопределить их значения по умолчанию, «иконка быстрого доступа» и «image/x-icon» соответственно:

favicon_link_tag
# => <link href="/assets/favicon.ico" rel="shortcut icon" type="image/x-icon" />

favicon_link_tag 'myicon.ico'
# => <link href="/assets/myicon.ico" rel="shortcut icon" type="image/x-icon" />

Mobile Safari ищет другой тег ссылки, указывающий на изображение, которое будет использоваться, если вы добавите страницу в домашний экран устройства iOS. Следующий вызов сгенерирует такой тег:

favicon_link_tag 'mb-icon.png', rel: 'apple-touch-icon', type: 'image/png'
# => <link href="/assets/mb-icon.png" rel="apple-touch-icon" type="image/png" />
image_alt(src) Показать исходный код
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 238
def image_alt(src)
  File.basename(src, '.*').sub(/-[[:xdigit:]]{32,64}\z/, '').tr('-_', ' ').capitalize
end

Возвращает строку, подходящую для атрибута alt тега HTML-изображения. Аргумент src предназначен для пути к файлу изображения. Метод удаляет имя файла из пути и хэш, если он есть. Также удаляет дефисы и подчеркивания из имён файлов и заменяет их пробелами, возвращая строку с заглавными буквами, разделённую пробелами.

Примеры

image_alt('rails.png')
# => Rails

image_alt('hyphenated-file-name.png')
# => Hyphenated file name

image_alt('underscored_file_name.png')
# => Underscored file name
image_tag(source, options={}) Показать исходный код
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 208
def image_tag(source, options={})
  options = options.symbolize_keys

  src = options[:src] = path_to_image(source)

  unless src =~ /^(?:cid|data):/ || src.blank?
    options[:alt] = options.fetch(:alt){ image_alt(src) }
  end

  options[:width], options[:height] = extract_dimensions(options.delete(:size)) if options[:size]
  tag("img", options)
end

Возвращает HTML-тег изображения для source. source может быть полным путем или именем файла.

Параметры

Вы можете добавить HTML-атрибуты, используя options. options поддерживает два дополнительных ключа для удобства и соответствия:

  • :alt - Если текст alt не указан, используется имя файла части source (с заглавными буквами и без расширения)

  • :size - Указывается как «{Ширина}x{Высота}» или «{Число}», поэтому «30x45» становится width=“30” и height=“45”, а «50» становится width=“50” и height=“50”. :size будет проигнорировано, если значение не имеет правильного формата.

Примеры

image_tag("icon")
# => <img alt="Icon" src="/assets/icon" />
image_tag("icon.png")
# => <img alt="Icon" src="/assets/icon.png" />
image_tag("icon.png", size: "16x10", alt: "Edit Entry")
# => <img src="/assets/icon.png" width="16" height="10" alt="Edit Entry" />
image_tag("/icons/icon.gif", size: "16")
# => <img src="/icons/icon.gif" width="16" height="16" alt="Icon" />
image_tag("/icons/icon.gif", height: '32', width: '32')
# => <img alt="Icon" height="32" src="/icons/icon.gif" width="32" />
image_tag("/icons/icon.gif", class: "menu_icon")
# => <img alt="Icon" class="menu_icon" src="/icons/icon.gif" />
javascript_include_tag(*sources) Показать исходный код
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 56
def javascript_include_tag(*sources)
  options = sources.extract_options!.stringify_keys
  path_options = options.extract!('protocol', 'extname').symbolize_keys
  sources.uniq.map { |source|
    tag_options = {
      "src" => path_to_javascript(source, path_options)
    }.merge!(options)
    content_tag(:script, "", tag_options)
  }.join("\n").html_safe
end

Возвращает HTML-тег script для каждого из sources.

Источники могут быть путями к JavaScript-файлам. Относительные пути предполагаются относительно assets/javascripts, полные пути предполагаются относительно корня документа. Относительные пути используются чаще, используйте абсолютные пути только в необходимых случаях.

При указании путей расширение «.js» является необязательным. Если вы не хотите добавлять «.js» к пути, extname: false можно установить в параметрах.

Вы можете изменить HTML-атрибуты тега script, передав хэш в качестве последнего аргумента.

При включенном Asset Pipeline вы можете передать имя вашего файла манифеста в качестве источника и включать в него другие JavaScript- или CoffeeScript-файлы.

javascript_include_tag "xmlhr"
# => <script src="/assets/xmlhr.js?1284139606"></script>

javascript_include_tag "template.jst", extname: false
# => <script src="/assets/template.jst?1284139606"></script>

javascript_include_tag "xmlhr.js"
# => <script src="/assets/xmlhr.js?1284139606"></script>

javascript_include_tag "common.javascript", "/elsewhere/cools"
# => <script src="/assets/common.javascript?1284139606"></script>
#    <script src="/elsewhere/cools.js?1423139606"></script>

javascript_include_tag "http://www.example.com/xmlhr"
# => <script src="http://www.example.com/xmlhr"></script>

javascript_include_tag "http://www.example.com/xmlhr.js"
# => <script src="http://www.example.com/xmlhr.js"></script>
stylesheet_link_tag(*sources) Показать исходный код
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 92
def stylesheet_link_tag(*sources)
  options = sources.extract_options!.stringify_keys
  path_options = options.extract!('protocol').symbolize_keys

  sources.uniq.map { |source|
    tag_options = {
      "rel" => "stylesheet",
      "media" => "screen",
      "href" => path_to_stylesheet(source, path_options)
    }.merge!(options)
    tag(:link, tag_options)
  }.join("\n").html_safe
end

Возвращает тег ссылки таблицы стилей для указанных источников в качестве аргументов. Если вы не укажете расширение, .css будет автоматически добавлен. Вы можете изменить атрибуты ссылки, передав хэш в качестве последнего аргумента. По историческим причинам атрибут «media» всегда присутствует и по умолчанию равен «screen», поэтому вы должны явно установить его в «all», чтобы таблица стилей применялась ко всем типам носителей.

stylesheet_link_tag "style"
# => <link href="/assets/style.css" media="screen" rel="stylesheet" />

stylesheet_link_tag "style.css"
# => <link href="/assets/style.css" media="screen" rel="stylesheet" />

stylesheet_link_tag "http://www.example.com/style.css"
# => <link href="http://www.example.com/style.css" media="screen" rel="stylesheet" />

stylesheet_link_tag "style", media: "all"
# => <link href="/assets/style.css" media="all" rel="stylesheet" />

stylesheet_link_tag "style", media: "print"
# => <link href="/assets/style.css" media="print" rel="stylesheet" />

stylesheet_link_tag "random.styles", "/css/stylish"
# => <link href="/assets/random.styles" media="screen" rel="stylesheet" />
#    <link href="/css/stylish.css" media="screen" rel="stylesheet" />
video_tag(*sources) Показать исходный код
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 280
def video_tag(*sources)
  multiple_sources_tag('video', sources) do |options|
    options[:poster] = path_to_image(options[:poster]) if options[:poster]
    options[:width], options[:height] = extract_dimensions(options.delete(:size)) if options[:size]
  end
end

Возвращает HTML-тег видео для sources. Если sources — строка, возвращается один тег видео. Если sources — массив, возвращается тег видео со вложенными тегами источника для каждого источника. sources может быть полными путями или файлами, существующими в вашем общедоступном каталоге видео.

Параметры

Вы можете добавить HTML-атрибуты, используя options. options поддерживает два дополнительных ключа для удобства и соответствия:

  • :poster - Установите изображение (например, снимок экрана), которое будет отображаться до загрузки видео. Путь рассчитывается так же, как и src для image_tag.

  • :size - Указывается как «{Ширина}x{Высота}» или «{Число}», поэтому «30x45» становится width=“30” и height=“45”, а «50» становится width=“50” и height=“50”. :size будет проигнорировано, если значение не имеет правильного формата.

Примеры

video_tag("trailer")
# => <video src="/videos/trailer"></video>
video_tag("trailer.ogg")
# => <video src="/videos/trailer.ogg"></video>
video_tag("trailer.ogg", controls: true, autobuffer: true)
# => <video autobuffer="autobuffer" controls="controls" src="/videos/trailer.ogg" ></video>
video_tag("trailer.m4v", size: "16x10", poster: "screenshot.png")
# => <video src="/videos/trailer.m4v" width="16" height="10" poster="/assets/screenshot.png"></video>
video_tag("/trailers/hd.avi", size: "16x16")
# => <video src="/trailers/hd.avi" width="16" height="16"></video>
video_tag("/trailers/hd.avi", size: "16")
# => <video height="16" src="/trailers/hd.avi" width="16"></video>
video_tag("/trailers/hd.avi", height: '32', width: '32')
# => <video height="32" src="/trailers/hd.avi" width="32"></video>
video_tag("trailer.ogg", "trailer.flv")
# => <video><source src="/videos/trailer.ogg" /><source src="/videos/trailer.flv" /></video>
video_tag(["trailer.ogg", "trailer.flv"])
# => <video><source src="/videos/trailer.ogg" /><source src="/videos/trailer.flv" /></video>
video_tag(["trailer.ogg", "trailer.flv"], size: "160x120")
# => <video height="120" width="160"><source src="/videos/trailer.ogg" /><source src="/videos/trailer.flv" /></video>

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API