Spec-Zone.ru › Ruby on Rails 4.2

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

Включенные модули:
ActionView::RecordIdentifier

Публичные методы экземпляра

content_tag_for(tag_name, single_or_multiple_records, prefix = nil, options = nil, &block) Показать исходный код
# File actionview/lib/action_view/helpers/record_tag_helper.rb, line 83
def content_tag_for(tag_name, single_or_multiple_records, prefix = nil, options = nil, &block)
  options, prefix = prefix, nil if prefix.is_a?(Hash)

  Array(single_or_multiple_records).map do |single_record|
    content_tag_for_single_record(tag_name, single_record, prefix, options, &block)
  end.join("\n").html_safe
end

#content_tag_for создаёт HTML-элемент с параметрами id и class, которые относятся к указанному объекту Active Record. Например:

<%= content_tag_for(:tr, @person) do %>
  <td><%= @person.first_name %></td>
  <td><%= @person.last_name %></td>
<% end %>

что выведет следующий HTML (предполагая, что @person — это экземпляр объекта Person с id 123):

<tr id="person_123" class="person">....</tr>

Если вам нужен префикс для атрибута id HTML, вы можете его указать:

<%= content_tag_for(:tr, @person, :foo) do %> ...

что выведет:

<tr id="foo_person_123" class="person">...

Вы также можете передать массив объектов, по которому этот метод будет итерироваться и передавать текущий объект в предоставленный блок, что сократит необходимость итерации по объекту (используя each) предварительно. Например (предполагая, что @people — это массив объектов Person):

<%= content_tag_for(:tr, @people) do |person| %>
  <td><%= person.first_name %></td>
  <td><%= person.last_name %></td>
<% end %>

что выведет:

<tr id="person_123" class="person">...</tr>
<tr id="person_124" class="person">...</tr>

#content_tag_for также принимает хэш параметров, который будет преобразован в дополнительные атрибуты HTML. Если вы укажете значение :class, оно будет объединено с именем класса по умолчанию для вашего объекта. Например:

<%= content_tag_for(:li, @person, class: "bar") %>...

что выведет:

<li id="person_123" class="person bar">...
div_for(record, *args, &block) Показать исходный код
# File actionview/lib/action_view/helpers/record_tag_helper.rb, line 33
def div_for(record, *args, &block)
  content_tag_for(:div, record, *args, &block)
end

Создаёт обертывающий элемент DIV с параметрами id и class, относящимися к указанному объекту Active Record. Пример использования:

<%= div_for(@person, class: "foo") do %>
   <%= @person.name %>
<% end %>

что выведет:

<div id="person_123" class="person foo"> Joe Bloggs </div>

Вы также можете передать массив объектов Active Record, по которому будет итерироваться, и передавать каждый объект как аргумент для блока. Например:

<%= div_for(@people, class: "foo") do |person| %>
  <%= person.name %>
<% end %>

что выведет:

<div id="person_123" class="person foo"> Joe Bloggs </div>
<div id="person_124" class="person foo"> Jane Bloggs </div>

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

Spec-Zone.ru

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