The greatest form builder for Ruby on Rails.
- Tabular forms
- ul / li css forms
- Easily extensible
- Comes with a few useful extensions already
- Comes with a FormBuilder compliant StaticBuilder to render any form built with it as static.
To create a basic form:
<% form_for @user do |f| %> <h2>User details</h2> <% f.table do %> <% f.manual :label => "Name" do %> <%= f.text_field :first_name %> <%= f.text_field :last_name %> <% end %> <%= f.text_field :age %> <% end %> <% f.table do %> <%= f.text_field :address %> … etc. <% end %>
<% end %>
This form, out of the box, will be rendered as a table (with a class of form). To make the labels line up, you’ll want to add some CSS:
table.form td.label {
display:block;
width:200px;
font-weight:bold;
}
You can also render ul / li like so:
<% form_for @user do |f| %>
<h2>User details</h2>
<% f.ul do %>
...
<% end %>
<% end %>
The ul is rendered with a class of “form”. You’ll need to add css styling to make it work. Good luck with that.
If you extract that to a partial, _form.html.erb
, then you could use if as a static view or a form
# render it as a form
<% form_for @user do |f| %>
<%= render :partial => "form", :locals => {:f => f} %>
<% end %>
# render it as static
<% form_for @user, :builder => StaticBuilder do |f| %>
<%= render :partial => "form", :locals => {:f => f} %>
<% end %>
- Fork Uber-Builder
- Make your modification
- Add tests!
- Make sure all existing tests pass
- Send me a pull request on github
Graeme Mathieson for writing the original TabularFormBuilder, which I used as a starting point for UberBuilder