Spec-Zone.ru › Ruby on Rails 5.0

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

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

Предоставляет методы для генерации HTML-тегов программно, когда вы не можете использовать Builder. По умолчанию они выводят теги, совместимые с XHTML.

Константы

BOOLEAN_ATTRIBUTES
PRE_CONTENT_STRINGS
TAG_PREFIXES

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

cdata_section(content) Показать исходный код
# File actionview/lib/action_view/helpers/tag_helper.rb, line 126
def cdata_section(content)
  splitted = content.to_s.gsub(/\]\]\>/, ']]]]><![CDATA[>')
  "<![CDATA[#{splitted}]]>".html_safe
end

Возвращает раздел CDATA с заданным content. Разделы CDATA используются для экранирования блоков текста, содержащих символы, которые в противном случае распознавались как разметка. Разделы CDATA начинаются со строки <![CDATA[ и заканчиваются (и не могут содержать) строкой ]]>.

cdata_section("<hello world>")
# => <![CDATA[<hello world>]]>

cdata_section(File.read("hello_world.txt"))
# => <![CDATA[<hello from a text file]]>

cdata_section("hello]]>world")
# => <![CDATA[hello]]]]><![CDATA[>world]]>
content_tag(name, content_or_options_with_block = nil, options = nil, escape = true, &block) Показать исходный код
# File actionview/lib/action_view/helpers/tag_helper.rb, line 104
def content_tag(name, content_or_options_with_block = nil, options = nil, escape = true, &block)
  if block_given?
    options = content_or_options_with_block if content_or_options_with_block.is_a?(Hash)
    content_tag_string(name, capture(&block), options, escape)
  else
    content_tag_string(name, content_or_options_with_block, options, escape)
  end
end

Возвращает HTML-тег блока типа name, окружающий content. Добавьте HTML-атрибуты, передав хеш атрибутов в options. Вместо передачи содержимого в качестве аргумента, вы также можете использовать блок, в котором случае вы передаёте свой options в качестве второго параметра. Установите escape в false, чтобы отключить экранирование значений атрибутов.

Параметры

Хеш options может использоваться с атрибутами без значений, такими как (disabled и readonly), которым вы можете присвоить значение true в хеше options. Вы можете использовать символы или строки для имён атрибутов.

Примеры

content_tag(:p, "Hello world!")
 # => <p>Hello world!</p>
content_tag(:div, content_tag(:p, "Hello world!"), class: "strong")
 # => <div class="strong"><p>Hello world!</p></div>
content_tag(:div, "Hello world!", class: ["strong", "highlight"])
 # => <div class="strong highlight">Hello world!</div>
content_tag("select", options, multiple: true)
 # => <select multiple="multiple">...options...</select>

<%= content_tag :div, class: "strong" do -%>
  Hello world!
<% end -%>
 # => <div class="strong">Hello world!</div>
escape_once(html) Показать исходный код
# File actionview/lib/action_view/helpers/tag_helper.rb, line 138
def escape_once(html)
  ERB::Util.html_escape_once(html)
end

Возвращает экранированную версию html без влияния на существующие экранированные сущности.

escape_once("1 < 2 &amp; 3")
# => "1 &lt; 2 &amp; 3"

escape_once("&lt;&lt; Accept & Checkout")
# => "&lt;&lt; Accept &amp; Checkout"
tag(name, options = nil, open = false, escape = true) Показать исходный код
# File actionview/lib/action_view/helpers/tag_helper.rb, line 75
def tag(name, options = nil, open = false, escape = true)
  "<#{name}#{tag_options(options, escape) if options}#{open ? ">" : " />"}".html_safe
end

Возвращает пустой HTML-тег типа name, который по умолчанию совместим с XHTML. Установите open в значение true, чтобы создать открытый тег, совместимый с HTML 4.0 и ниже. Добавьте HTML-атрибуты, передав хеш атрибутов в options. Установите escape в значение false, чтобы отключить экранирование значений атрибутов.

Параметры

Вы можете использовать символы или строки для имён атрибутов.

Используйте true с булевыми атрибутами, которые могут отображаться без значения, например disabled и readonly.

Атрибуты HTML5 data-* могут быть заданы с помощью единственного ключа data, указывающего на хеш под-атрибутов.

Для совместимости с JavaScript-конвенциями под-атрибуты преобразуются в дефисно-разделительный формат. Например, ключ user_id будет отображаться как data-user-id и, таким образом, доступен как dataset.userId.

Значения кодируются в JSON, за исключением строк, символов и BigDecimals. Это может пригодиться при использовании HTML5-сознательного .data() jQuery из версии 1.4.3.

Примеры

tag("br")
# => <br />

tag("br", nil, true)
# => <br>

tag("input", type: 'text', disabled: true)
# => <input type="text" disabled="disabled" />

tag("input", type: 'text', class: ["strong", "highlight"])
# => <input class="strong highlight" type="text" />

tag("img", src: "open & shut.png")
# => <img src="open &amp; shut.png" />

tag("img", {src: "open &amp; shut.png"}, false, false)
# => <img src="open &amp; shut.png" />

tag("div", data: {name: 'Stephen', city_state: %w(Chicago IL)})
# => <div data-name="Stephen" data-city-state="[&quot;Chicago&quot;,&quot;IL&quot;]" />

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

Spec-Zone.ru

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