funky_form

MIT License

Stars
13

= 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

<p>
  <%= f.label :body %>
  <%= f.text_area :body %>
</p>

<p><%= f.submit %></p>

<% end %>