# Customizing the Form

Active Admin gives complete control over the output of the form by creating a thin DSL on top of
the fabulous DSL created by Formtastic (http://github.com/justinfrench/formtastic).

    ActiveAdmin.register Post do

      form do |f|
        f.inputs "Details" do
          f.input :title
          f.input :published_at, :label => "Publish Post At"
          f.input :category
        end
        f.inputs "Content" do
          f.input :body
        end
        f.actions
      end

    end

Please view the documentation for Formtastic to see all the wonderful things you can do:
http://github.com/justinfrench/formtastic

If you require a more custom form than can be provided through the DSL, you can pass
a partial in to render the form yourself.

For example:

    ActiveAdmin.register Post do
      form :partial => "form"
    end

Then implement app/views/admin/posts/_form.html.erb:

    <%= semantic_form_for [:admin, @post] do |f| %>
      <%= f.inputs :title, :body %>
      <%= f.actions :commit %>
    <% end %>

# Customizing the Form

Active Admin gives complete control over the output of the form by creating a thin DSL on top of
the fabulous DSL created by Formtastic (http://github.com/justinfrench/formtastic).

    ActiveAdmin.register Post do

      form do |f|
        f.inputs "Details" do
          f.input :title
          f.input :published_at, :label => "Publish Post At"
          f.input :category
        end
        f.inputs "Content" do
          f.input :body
        end
        f.actions
      end

    end

Please view the documentation for Formtastic to see all the wonderful things you can do:
http://github.com/justinfrench/formtastic

If you require a more custom form than can be provided through the DSL, you can pass
a partial in to render the form yourself.

For example:

    ActiveAdmin.register Post do
      form :partial => "form"
    end

Then implement app/views/admin/posts/_form.html.erb:

    <%= semantic_form_for [:admin, @post] do |f| %>
      <%= f.inputs :title, :body %>
      <%= f.actions :commit %>
    <% end %>

## Nested Resources

You can create forms with nested models using the `has_many` method:

    ActiveAdmin.register Post do

      form do |f|
        f.inputs "Details" do
          f.input :title
          f.input :published_at, :label => "Publish Post At"
        end
        f.inputs "Content" do
          f.input :body
        end
        f.inputs do
          f.has_many :categories, :allow_destroy => true do |cf|
            cf.input :title
          end
        end
        f.actions
      end

    end

The `:allow_destroy` option will add a checkbox to the end of the nested form allowing
removal of the child object upon submission. Be sure to set `:allow_destroy => true`
on the association to use this option.


Add docs for using has_many forms featuring :allow_destroy
Add docs for using has_many forms featuring :allow_destroy
