La semana pasada hablamos sobre cómo crear registros anidados usando un formulario ActiveModel :: Model. El problema con el resultado final de mi ejemplo es que solo podrÃamos agregar un único registro de contacto, mientras que necesitamos poder agregar arbitrariamente muchos. Lo que necesitamos aquà es un enlace o un botón que agregará los campos para otro contacto cada vez que se haga clic.
Hay un gran Railscast dedicado a esto, y casi nos funciona excepto por un detalle. Mira la primera lÃnea de la link_to_add_fields
función:
def link_to_add_fields(name, f, association)
new_object = f.object.class.reflect_on_association(association).klass.new
fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
render(association.to_s.singularize + "_fields", :f => builder)
end
link_to_function(name, "add_fields(this, "#{association}""