модуль ActionView::Helpers::RecordTagHelper
Публичные методы экземпляров
#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>
Если вам нужен префикс для атрибута HTML id, вы можете его указать:
<%= 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">...
# 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 Создаёт оберточный элемент 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>
# 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
© 2004–2016 David Heinemeier Hansson
Licensed under the MIT License.