diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-01-02 14:12:23 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-01-02 14:12:23 -0300 |
commit | 873870df4cbb0b79d1cb6d811cf68d3aa9fdc625 (patch) | |
tree | 69ae79f4064b6d5af931b03585540ef4d06a33b5 /guides | |
parent | c455817804e4df64c46c17a0cdec0e5a1ca5ba2e (diff) | |
parent | f02a35b86efea24f1e2ab684bc8081ced5eb3b1a (diff) | |
download | rails-873870df4cbb0b79d1cb6d811cf68d3aa9fdc625.tar.gz rails-873870df4cbb0b79d1cb6d811cf68d3aa9fdc625.tar.bz2 rails-873870df4cbb0b79d1cb6d811cf68d3aa9fdc625.zip |
Merge pull request #17974 from killthekitten/fix-render-block
Make possible to use blocks with short version of render partial
Conflicts:
actionview/CHANGELOG.md
Diffstat (limited to 'guides')
-rw-r--r-- | guides/source/layouts_and_rendering.md | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/guides/source/layouts_and_rendering.md b/guides/source/layouts_and_rendering.md index 6bf17b4a98..c3cde49630 100644 --- a/guides/source/layouts_and_rendering.md +++ b/guides/source/layouts_and_rendering.md @@ -1030,6 +1030,42 @@ One way to use partials is to treat them as the equivalent of subroutines: as a Here, the `_ad_banner.html.erb` and `_footer.html.erb` partials could contain content that is shared among many pages in your application. You don't need to see the details of these sections when you're concentrating on a particular page. +As you already could see from the previous sections of this guide, `yield` is a very powerful tool for cleaning up your layouts. Keep in mind that it's pure ruby, so you can use it almost everywhere. For example, we can use it to DRY form layout definition for several similar resources: + +* `users/index.html.erb` + + ```html+erb + <%= render "shared/search_filters", search: @q do |f| %> + <p> + Name contains: <%= f.text_field :name_contains %> + </p> + <%= end %> + ``` + +* `roles/index.html.erb` + + ```html+erb + <%= render "shared/search_filters", search: @q do |f| %> + <p> + Title contains: <%= f.text_field :title_contains %> + </p> + <%= end %> + ``` + +* `shared/_search_filters.html.erb` + + ```html+erb + <%= form_for(@q) do |f| %> + <h1>Search form:</h1> + <fieldset> + <%= yield f %> + </fieldset> + <p> + <%= f.submit "Search" %> + </p> + <% end %> + ``` + TIP: For content that is shared among all pages in your application, you can use partials directly from layouts. #### Partial Layouts |