Rails Components

It allows you to write reusable components in your rails views.

Installation

Install the rails components gem by adding it to your Gemfile:

gem 'rails_components'

Include RailsComponents in your app/helpers/application_helper.rb:

module ApplicationHelper
  include RailsComponents
end

Examples:

Bootstrap modal, with an ID, in erb:

<% content_tag :div, class: ['modal', props[:class]] do %>
  <div class="modal fade" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
      <div class="modal-content">
        <%= yield %>
      </div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
  </div><!-- /.modal -->
<% end %>
<div class="modal-header">
  <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  <h4 class="modal-title"><%= yield %></h4>
</div>
<div class="modal-body">
  <%= yield %>
</div>
<div class="modal-footer">
  <%= yield %>
</div>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>

Goals

  • make it as easy to write reusable components
  • feel familiar to existing rails helpers, like link_to or content_tag