Skip to content

Rails plugin to conveniently handle multiple models in a single form.

License

Notifications You must be signed in to change notification settings

cryo28/nested_form

This branch is 13 commits ahead of, 193 commits behind ryanb/nested_form:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e84ecd3 · Mar 24, 2011

History

60 Commits
Mar 24, 2011
Mar 4, 2011
Feb 15, 2011
Feb 15, 2011
Feb 15, 2011
Feb 15, 2011
Feb 15, 2011
Feb 17, 2011
Feb 15, 2011
Feb 15, 2011

Repository files navigation

Nested Form

A Rails gem to conveniently manage multiple nested models in a single form. It does so in an unobtrusive way through jQuery or Prototype.

This gem only works with Rails 3. See the rails2 branch for a plugin to work in Rails 2.

Setup

Add it to your Gemfile then run bundle to install it.

gem "nested_form"

Next run the generator to create the JavaScript file.

rails generate nested_form:install

Running the generator will add a file at public/javascripts/nested_form.js which should be included after the jQuery or Prototype framework.

<%= javascript_include_tag :defaults, "nested_form" %>

Usage

Use the nested_form_for helper method to enable the nesting.

<%= nested_form_for @project do |f| %>

Use this form just like normal, including the fields_for helper method for nesting models. The benefit of this plugin comes from the link_to_add and link_to_remove helper methods on the form builder.

<%= f.fields_for :tasks do |task_form| %>
  <%= task_form.text_field :name %>
  <%= task_form.link_to_remove "Remove this task" %>
<% end %>
<p><%= f.link_to_add "Add a task", :tasks %></p>

This generates links which dynamically add and remove fields.

Partials

This feature is still in development and not yet working.

It is often desirable to move the nested fields into a partial to keep things organized. If you don’t supply a block to fields_for it will look for a partial and use that.

<%= f.fields_for :tasks %>

In this case it will look for a partial called “task_fields” and pass the form builder as an f variable to it.

Special Thanks

This gem was originally based on the solution by Tim Riley in his complex-form-examples fork.

Thank you Andrew Manshin for the Rails 3 transition, Andrea Singh for converting to a gem and Peter Giacomo Lombardo for Prototype support.

Andrea also wrote a great blog post on the internal workings of this gem.

About

Rails plugin to conveniently handle multiple models in a single form.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%