No commit activity in last 3 years
No release in over 3 years
Gem to conveniently handle multiple models in a single form. Rails 2 plugin by Ryan Bates converted into a gem.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.0.0.rc.5
~> 3.0.0
>= 0
~> 2.0.0.beta.22
 Project Readme

Nested Form¶ ↑

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

To learn more about how this works under the hood: blog.madebydna.com/dynamic-nested-forms-in-rails-3-with-the-nest

Install¶ ↑

Add it to your Gemfile

gem "nested_form", :git => "git://github.com/madebydna/nested_form.git"

Run

bundle install

Run the generator

rails generate nested_form:install

Usage¶ ↑

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

<%= javascript_include_tag 'jquery', 'nested_form' %>

You can then generate a nested form using the nested_form_for helper method.

<%= 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 %>
<%= f.link_to_add "Add a task", :tasks %>

This generates links which dynamically add and remove fields.

Partials¶ ↑

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 is based on the plugin by Ryan Bates: github.com/ryanb/nested_form