Spec-Zone.ru › Ruby on Rails 4.1

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

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

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

content_tag_for(tag_name, single_or_multiple_records, prefix = nil, options = nil, &block) Показать исходный код

#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_for(record, *args, &block) Показать исходный код

Создаёт оберточный элемент 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.

Spec-Zone.ru

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