Ich habe ein Formular "Aufgaben" und ich bin dynamisch hinzufügen ein Kind "Schritte" -Formular.Rails nicht die Verbindung zwischen dynamisch hinzugefügt verschachtelten Formular und Eltern
Die 'Schritte' werden über einen JavaScript-Aufruf zum Rendern ('Schritte/Formular') hinzugefügt.
Das Formular wird ordnungsgemäß geladen, aber beim Senden des Aufgabenformulars wird der hinzugefügte Schritt nicht in die Datenbank aufgenommen.
Ich nehme an, das liegt daran, dass ich die beiden Formen nicht miteinander verbinde, aber ich bin mir nicht ganz sicher.
Mein Code ist Aufgaben/new.html.erb
<%= form_for @task, :html=>{:multipart=>true} do |f| %> <%= f.label :task_name %> <%= f.text_field :task_name %> <%= link_to "Add Step", @step, :remote=>true, :class=>'addStep %> <%= f.submit %> <% end %> <% content_for(:js) do %> $('a.addStep').click(function(){ $('div#newStep').append("<%= escape_javascript(render('steps/form'))%>"); }); <% end %>
die Schritte/_form.html.erb ist
<p class="fields"> <%= fields_for :steps do |builder| %> <%= builder.label :title %> <%= builder.text_field :title %> <% end %>
Ich glaube, das Problem ist, dass ich nicht bin vorbei ' f 'oder' task 'in die' step 'Form, aber ich konnte nicht herausfinden, wie das geht.
Wo dass Harry gehen würde? Ich habe kein Render Partials Tag, ich habe nur Render ('Schritte/Form'). Könnten Sie Ihre Antwort klären? – pedalpete
@pedalpete: Ich habe meine Antwort bearbeitet. Schau mal. –
Hallo Harry, danke für die Bearbeitung deiner Antwort, aber deine Antwort löst das Problem nicht wirklich, da eine Aufgabe viele Schritte haben kann. Durch dynamisches Hinzufügen des Schrittformulars kann ich einer Aufgabe drei Schritte hinzufügen, ohne die Seite zu verlassen. Ich kann Divs verstecken/anzeigen. Ich denke, dass Sie mit den Einheimischen auf dem richtigen Weg sind, aber ich konnte es in meinem Code nicht umsetzen. – pedalpete