Home | Papers | Blog

Body Builder Rails Plugin

The third and last Rails plugin of the plugin triathlon before our presentation tomorrow at the FOSDEM conference is the Body Builder plugin.

This plugin fixes the problem of how to organize the parts of your app that are re-used like blocks across pages, like those in side-bars and top-bars. It allows you to create render-points where content can be inserted in views. In short it allows one to set body_parts (variables that can be yielded in views) from controllers. Also since Rails components are notoriously slow, this is a nice alternative.

After installing the plugin you can declare body parts in your controllers (most often only in controllers/application.rb) with: body_parts :top, :sidebar. Then you can fill them up in the same, or in inheriting controllers by passing method syms to body- name_body, just like Rails filters: top_body :navigation_bar. The return value of these methods will be added to the body.

Then in the view you can display the body with <%= yield :sidebar_body > resp. <= yield :top_body %>. As you can see Body Builder supports multiple, user-defined bodies. This contrary to the SimpleSidebar plugin. See the full Body Builder docs for code examples and installation instructions.