diff options
author | José Valim <jose.valim@gmail.com> | 2011-09-04 00:28:15 -0700 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-09-04 00:28:15 -0700 |
commit | 036a25019d79565a6016cb60c520816916bb7de6 (patch) | |
tree | 89be5ca60d3a33eb795f22ddc03647750c61ca5c /railties | |
parent | 0eefd8dc4884217e70ed99fb7d8ae272c7ce2d12 (diff) | |
parent | b84cee08c6129717d7c3291918f06f95cc9eb916 (diff) | |
download | rails-036a25019d79565a6016cb60c520816916bb7de6.tar.gz rails-036a25019d79565a6016cb60c520816916bb7de6.tar.bz2 rails-036a25019d79565a6016cb60c520816916bb7de6.zip |
Merge pull request #2816 from sikachu/content_tag_for
Make `content_tag_for` and `div_for` accepts the array of records
Diffstat (limited to 'railties')
-rw-r--r-- | railties/guides/source/action_view_overview.textile | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/railties/guides/source/action_view_overview.textile b/railties/guides/source/action_view_overview.textile index 5a1e8b1247..d1827c649b 100644 --- a/railties/guides/source/action_view_overview.textile +++ b/railties/guides/source/action_view_overview.textile @@ -454,6 +454,83 @@ input("post", "title") # => <input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /> </ruby> +h4. RecordTagHelper + +This module provides methods for generating a container tag, such as a +<div>+, for your record. This is the recommended way of creating a container for render your Active Record object, as it adds an appropriate class and id attributes to that container. You can then refer to those containers easily by following the convention, instead of having to think about which class or id attribute you should use. + +h5. content_tag_for + +Renders a container tag that relates to your Active Record Object. + +For example, given +@post+ is the object of +Post+ class, you can do: + +<ruby> +<%= content_tag_for(:tr, @post) do %> + <td><%= @post.title %></td> +<% end %> +</ruby> + +This will generate this HTML output: + +<html> +<tr id="post_1234" class="post"> + <td>Hello World!</td> +</tr> +</html> + +You can also supply HTML attributes as an additional option hash. For example: + +<ruby> +<%= content_tag_for(:tr, @post, :class => "frontpage") do %> + <td><%= @post.title %></td> +<% end %> +</ruby> + +Will generate this HTML output: + +<html> +<tr id="post_1234" class="post frontpage"> + <td>Hello World!</td> +</tr> +</html> + +You can pass a collection of Active Record objects. This method will loops through your objects and create a container for each of them. For example, given +@posts+ is an array of two +Post+ objects: + +<ruby> +<%= content_tag_for(:tr, @posts) do |post| %> + <td><%= post.title %></td> +<% end %> +</ruby> + +Will generate this HTML output: + +<html> +<tr id="post_1234" class="post"> + <td>Hello World!</td> +</tr> +<tr id="post_1235" class="post"> + <td>Ruby on Rails Rocks!</td> +</tr> +</html> + +h5. div_for + +This is actually a convenient method which calls +content_tag_for+ internally with +:div+ as the tag name. You can pass either an Active Record object or a collection of objects. For example: + +<ruby> +<%= div_for(@post, :class => "frontpage") do %> + <td><%= @post.title %></td> +<% end %> +</ruby> + +Will generate this HTML output: + +<html> +<div id="post_1234" class="post frontpage"> + <td>Hello World!</td> +</div> +</html> + h4. AssetTagHelper This module provides methods for generating HTML that links views to assets such as images, JavaScript files, stylesheets, and feeds. |