Campos de formulario dynamics en Rails3 con jQuery

Estoy usando rialscasts # 74 como una guía.

Estoy intentando agregar campos de formulario dinámicamente a través de un enlace de texto. En el episodio de Railscast lo logra muy bien usando el siguiente código:

   
'task', :collection => @project.tasks %>

Task:

# projects_helper.rb def add_task_link(name) link_to_function name do |page| page.insert_html :bottom, :tasks, :partial => 'task', :object => Task.new end end

Lo que más me interesa es el contenido dentro de projects_help.rb. El problema es que lo hace a través de un prototipo. Estoy buscando una implementación duplicada exacta usando jquery (y rails3). ¿Qué piensas? ¡Gracias!

Ya iba a decir que es un outlook muy antiguo y que utiliza prácticas obsoletas y un marco antiguo. Voy a tratar de ayudarte.

layouts / application.erb

 <%= javascript_include_tag :defaults %> 

proyectos / new.erb

 
<%= render :partial => 'task', :collection => @project.tasks %>

<%= add_task_link "Add a task" %>

proyectos / _task.erb

 
<%= fields_for "project[task_attributes][]", task do |task_form| %>

Task: <%= task_form.text_field :name %> <%= link_to "remove", "#", :class => 'remove_task'

<% end %>

proyectos_helper.rb

 def add_task_link(name) # This is a trick I picked up... if you don't feel like installing a # javascript templating engine, or something like Jammit, but still want # to render more than very simple html using JS, you can render a partial # into one of the data-attributes on the element. # # Using Jammit's JST abilities may be worthwhile if it's something you do # frequently though. link_to name, "#", "data-partial" => h(render(:partial => 'task', :object => Task.new)), :class => 'add_task' end 

public / javascripts / application.js

 $(function(){ // Binds to the remove task link... $('.remove_task').live('click', function(e){ e.preventDefault(); $(this).parents('.task').remove(); }); // Add task link, note that the content we're appending // to the tasks list comes straight out of the data-partial // attribute that we defined in the link itself. $('.add_task').live('click', function(e){ e.preventDefault(); $('#tasks').append($(this).data('partial')); }); }); 

Los RailsCasts / ASCIICasts actuales son # 196 (consulte http://asciicasts.com/episodes/196-nested-model-form-part-1 ) y 197 que se han actualizado para Rails3.

Ryan Bates también ha creado una gem llamada nested_form (consulte https://github.com/ryanb/nested_form ) que maneja mucho de esto por usted. También ha creado ejemplos de formas anidadas complejas utilizando Prototype, jQuery y su gem de forma anidada; Puedes encontrar un enlace en la página de formularios nesteds.

¡Buen material!