Rails 3 Bearbeiten Sie Mehrere Datensätze in einem Einzigen Formular
Ich Hänge schon länger an diesem problem seit ein paar Tagen jetzt.
Habe ich einigen Erfolg mit Railscasts Episode #198, sondern dass man für Rails 2. Es gab einige änderungen in Rails 3 ist, dass die es so machen, den code in Episode #198 wird nicht funktionieren.
Das problem liegt in der edit_individual.html-Code.erb:
Original-Code (zur Verfügung gestellt von Ryan @ Railscasts):
<% form_tag update_individual_products_path, :method => :put do %>
<% for product in @products %>
<% fields_for "products[]", product do |f| %>
<h2><%=h product.name %></h2>
<%= render "fields", :f => f %>
<% end %>
<% end %>
<p><%= submit_tag "Submit" %></p>
<% end %>
Geänderten Code (einfach geändert fields_for zu form_for):
<% form_tag update_individual_products_path, :method => :put do %>
<% for product in @products %>
<% form_for "products[]", product do |f| %>
<h2><%=h product.name %></h2>
<%= render "fields", :f => f %>
<% end %>
<% end %>
<p><%= submit_tag "Submit" %></p>
<% end %>
Den neuen code eingeben, wird jeder Datensatz in einem Formular auf Ihre eigenen, die alle in eine einzige form (das ist die, die ich nur will).
Meine Frage ist, wie bekomme ich den code von Railscasts Episode #198 arbeiten in Rails 3?
Hier ist ein link zu den Railscast die ich erwähnt habe:
http://railscasts.com/episodes/198-edit-multiple-individually
Danke,
c.allen.rosario
form_for
in einem anderen form_for
denn das würde bedeuten, ein <form>
tag in einem anderen <form>
tag. Sie do verwenden müssen fields_for
. Was sind die Fehler beim ausführen von code in Rails 3 ?Es werden keine Fehler angezeigt. Ich bekomme nur eine leere Seite mit einem submit-button.
InformationsquelleAutor chris__allen | 2010-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich die Lösung. Nur müssen Sie die folgende Zeile in den code von Ryan @ Railscasts:
und zu ändern:
Beachten Sie, dass die
<%
wurde modifiziert, um<%=
.endgültige Lösung:
Ich Frage mich, wenn jemand erklären könnte diese Lösung für mich. Von dem, was ich verstehe, benötigen Sie lediglich einen
<%
vor derfields_for
.c.allen.rosario
=
ist erforderlich, Rails 3, obwohl es nicht notwendig war in früheren Rails-Versionen. Haben Sie nicht brauchen, um es für dieform_tag
?Das = war nicht erforderlich, für den form_tag
Ich denke, dass ein Komma fehlt, ist Ihre endgültige Lösung sollte beginnen mit:
<% form_tag update_individual_products_path, :method => :put do %>
InformationsquelleAutor chris__allen
Die änderung in Rails 3 von <% fields_for zu <%= fields_for ist, da war es verwirrend, dass form_for, form_tag, etc... wurden mit Hilfe von <%... %> obwohl Sie waren Sie die Ausgabe von html-code.
Mit Rails 3, da Sie die Ausgabe html-code, verwenden Sie <%=.
Bitte beachten Sie, dass Ihre erste Zeile ist veraltet:
sollte
Gleiche für alle form-tags.
InformationsquelleAutor gamov