#content_tag_for creates an HTML element with id and class parameters that relate to the specified Active Record object. For example:
<%= content_tag_for(:tr, @person) do %> <td><%= @person.first_name %></td> <td><%= @person.last_name %></td> <% end %>
would produce the following HTML (assuming @person is an instance of a Person object, with an id value of 123):
<tr id="person_123" class="person">....</tr>
If you require the HTML id attribute to have a prefix, you can specify it:
<%= content_tag_for(:tr, @person, :foo) do %> ...
produces:
<tr id="foo_person_123" class="person">...
You can also pass an array of objects which this method will loop through
and yield the current object to the supplied block, reducing the need for
having to iterate through the object (using each
) beforehand.
For example (assuming @people is an array of Person objects):
<%= content_tag_for(:tr, @people) do |person| %> <td><%= person.first_name %></td> <td><%= person.last_name %></td> <% end %>
produces:
<tr id="person_123" class="person">...</tr> <tr id="person_124" class="person">...</tr>
#content_tag_for
also accepts a hash of options, which will be converted to additional HTML attributes. If you specify a
:class
value, it will be combined with the default class name
for your object. For example:
<%= content_tag_for(:li, @person, class: "bar") %>...
produces:
<li id="person_123" class="person bar">...
Please login to continue.