Bootstraps_bootstraps

Bootstrap 2.0 is Twitter's CSS and Javascript framework. It is a great baseline for starting web applications. As a CSS/Javascript framework it does a great job of providing a baseline styleset and group of user interface components given that you play within its garden.

Rails 3 is an open source web framework that does a lot to make web application development easy, secure, and quick.

To get the best experience out of both worlds Rails needs a bit of bootstrapping to get a form builder that plays nice with Bootstrap. This gem provides the bootstraps that Bootstrap needs to make Rails+Bootstrap a potent combination.

Development of this gem more or less follows Bootstrap-sass. As such the version number of this project correspond to the Twitter Bootstrap version numbers for both the Major and Minor. The Patch number will track independently.

Current Features

An extended form_for called bootstrap_form with all the classic functionality yet extended to provide correct Bootstrap 2 syntax for horizontal forms (classed with .form_horizontal) for most elements.

Impetus

Many form builders already exist which enable bootstrap style syntax. My biggest reason for not using any of them is that I just want to write simple rails view code in my view. I don't want to define in my model what type of form field a column needs to be represented by, because it might be represented by many interaction types. I also don't want to have to deal with syntax config files to get the form builder to render bootstrap compatible syntax. Above all, when I don't want the markup to be mucked with at all, I want to be able to just render the form as rails always does. Bootstraps_bootstraps provides this functionality by simply providing a secondary FormBuilder and a shortcut method to build forms with that builder.

Development Strategy

This isn't compatible with Bootstrap versions < 2.

More or less I'm writing this library as needed. Each time I find myself trying to do something with form_for or interact between Rails and Bootstrap I find a way to make them play nice together without losing baseline Rails functionality.

Use

Add it to your gemfile: gem 'bootstraps_bootstraps'

To use the Bootstrap 2 form helper in your views:


# set the form class as you would for the Bootstrap library.  Bootstraps_bootstraps will use that to determine the html elements required.
= bootstrapped_form @user, html: {class: 'form-horizontal'} do |f|
  # Labels are added automatically
  = f.text_field :first_name
  = f.text_field :last_name

  # Override the label text with :label in the options hash
  = f.collection_select :occupations, Occupation.all, :id, :name, :label => 'Job'
  = f.text_field :address,  :label => "Address Line 1"
  = f.text_field :address2,  :label => "Line 2"

  #make an inline field group inside of the horizontal form
  = f.inline_inputs label: 'Expiration Date' do |inline|
    = inline.collection_select :month, (1..12), :to_s, :to_s
    \-
    = inline.collection_select :year, (Time.now.year...Time.now.year + 10), :to_s, :to_s

  = f.submit

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
  6. :-)