= FunkyForm The purpose of form objects is to take user-entered data and perform work on it. == Installation Add to your Gemfile gem "funky_form" == Examples ==== app/models/post.rb class Post < ActiveRecord::Base end ==== app/forms/post_form.rb class PostForm include FunkyForm model Post attribute :id, Integer attribute :title, String attribute :body, String validates :title, :presence => true, :length => {:maximum => 30} validates :body, :presence => true, :length => {:within => 10..30} end ==== app/controllers/posts_controller.rb class PostsController < ApplicationController def new @post_form = PostForm.new end def create @post_form = PostForm.new(params[:post]) if @post_form.valid? Post.create(@post_form.attributes) flash[:notice] = "Successfully created" redirect_to :posts else flash[:alert] = "Validation errors" render "new" end end end ==== app/views/posts/new.html.erb
<%= f.label :title %> <%= f.text_field :title %>
<%= f.label :body %> <%= f.text_area :body %>
<%= f.submit %>
<% end %>