модуль ActionView::Helpers::RecordTagHelper
Публичные методы экземпляра
# 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">...
# 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.