content_tag_for(tag_name, record, prefix = nil, options = nil, &block) public

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 %> ...


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

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") %>...


<li id="person_123" class="person bar">...
Show source
Register or log in to add new notes.
June 19, 2013 - (>= v3.2.13)
1 thank

Must use :class, not 'class'

Note that

<%= content_tag_for(:li, @person, :class => “bar”) %>

does the right thing.

<%= content_tag_for(:li, @person, ‘class’ => “bar”) %>

will not!