enhanced form handling for rails applications
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



this plugin is intended to help in creating forms. its featureset will grow in the near future. for now it can do this:

* adds a required_field?(field_name) method to all the activerecord models. this allows you to automatically mark required fields in a form with a *. required fields are determined automatically from the validates_* calls in the class.

* there is a helper method available in the views that prints out the label for a field with our without star

* a TabularForumBuilder class which can be used with the form_for rails helper. It automatically wraps all form fields in table rows and cells.


# user.rb

class User < ActiveRecord::Base
  validates_presence_of :name
  validates_confirmation_of :password
  validates_acceptance_of :terms
  required_fields << [:login] # in case you want to mark additional fields as required

User.required_field?(:name) # => true
User.required_field?(:login) # => true
User.required_field?(:password_confirmation) # => true
User.required_field?(:terms) # => true
User.required_field?(:email) # => false

# users/new.html.erb

<%= label_fu @user, :name %> # => <label for="user_name">Name *</label>
<%= label_fu @user, :email %> # => <label for="user_email">Email</label>

# or with the form builder

<%- form_for :user, :builder => TabularFormBuilder do |f| -%>
  <%= f.text_field :name %>
<%- end -%>

# prints out:

<form ...>
      <th><label for="user_name">Name: *</label></th>
      <td><input name="user[name]" type="text"/></td>

# some added sugar:

<%= f.text_fields :email, :name, :address %>

# call text_field for each of the attributes

<%= f.text_field_without_label :name %>

# prints out the input tag without the tr, td and label - in case you need more customization

For questions, patches etc. contact alex[at]upstream-berlin.com

Copyright (c) 2008 Alexander Lang, released under the MIT license