Formtastic Bootstrap

A Formtastic form builder that creates markup suitable for the Twitter Bootstrap framework. In theory, it should just work. Two great tastes in one!

You can follow FormBoot on twitter for update announcements and other relevant info.

Getting Started

Dependencies

This version of Formtastic Bootstrap should support the following:

Bootstrap

Rails

Formtastic

Ruby

Installation

Install the gem with

gem install formtastic_rebootstrap

Or add it to your Gemfile:

gem 'formtastic_rebootstrap'

And install it with bundle install.

Configuration

Add the following line to your Formtastic initialization file:

# config/initializers/formtastic.rb
Formtastic::Helpers::FormHelper.builder = FormtasticRebootstrap::FormBuilder

Add the following line to the top of your application.css file:

# app/assets/stylesheets/application.css
*= require formtastic_rebootstrap

Make sure you've already downloaded and installed Formtastic! Do not however require formtastic in your application.css file or you will have many bootstrap/formtastic_rebootstrap styles overwritten.

Formtastic vs. Formtastic Bootstrap

THIS SECTION IS OUT OF DATE.

Overview

In general, Formtastic creates very verbose HTML whereas Bootstrap expects (ever) simpler HTML. Every attempt has been made to generate the HTML expected by Bootstrap while still generating the rich HTML provided by Formtastic. When there is a conflict, Bootstrap wins.

Major Difference in Behavior

THIS SECTION IS OUT OF DATE

Bootstrap is somewhat incomplete, and in a few cases an inference needed to be drawn to determine a course of action. If you disagree with any of these choices, feel free to let me know.

The gem also provides some “shim” CSS where Bootstrap is missing styles provided Formtastic.

Other

A lot of the code (especially the test suite) was copied over from Formtastic and then beaten into submission. I'm sure you'll find some ugliness in there. In general, I mimicked the Formtastic code structure as much as possible.

In particular:

What's Missing

Contributions are welcome!

Usage

In general, the usage should be identical to Formtastic's. Some changes have been introduced in order to support Bootstrap-specific controls.

Bootstrap-specific Controls

Prepended Text

To create a Prepended Text field, use the :prepend option. This works on any text field input type, like :url, :search, and of course :string

<%= semantic_form_for @user do |f| %>
  <%= f.inputs do %>
    <%= f.input :handle, :prepend => '@' %>
  <% end %>
<% end %>

Appended Text

To create an Appended Text field, use the :append option. This works on any text field input type, like :url, :search, and of course :string

<%= semantic_form_for @user do |f| %>
  <%= f.inputs do %>
    <%= f.input :handle, :append => '%' %>
  <% end %>
<% end %>

Appended Content

To add appended elements that are not contained within an add-on span use the :append_content or :prepend_content option.

<%= semantic_form_for @user do |f| %>
  <%= f.inputs do %>
    <%= f.input :handle, :append_content => content_tag(:a, "Click Here", :class => 'btn') %>
  <% end %>
<% end %>

Contributing

Contributors

A big thank you to all contributors!

Submitting Issues

If you're filing a bug, thank you! Secondly, in the report please include:

Source Contributions

Source contributions are very welcome! Most of the recent work on this package has been done by the community.

To Do

Copyright © 2013-2015 Matthew Bellantoni. See LICENSE.txt for further details.