Ich bin mit dem folgenden Problem in Schienen konfrontiert. Ich habe ein Formular zum Bearbeiten/Erstellen eines neuen Projekts, das 1 bis n Unterprojekte enthalten kann, die wiederum 1 bis n Aufgaben enthalten können.Rails Multi-Modell-Form mit Daten mit einem Hash mit einem Hash
Also, wenn ich ein neues Projekt an der Steuerung ausführt:
@project = Project.new
sub_project = SubProject.new
work = Work.new
sub_project.works << work
@project.sub_projects << sub_project
die Grundstruktur ich die Eingabefelder in der Ansicht zu erzeugen, die Form mich so aufbauen:
Projekt
<% form_for (:project, :url => action_parameter, :id => project) do |form| %>
Teilprojekt
<% fields_for "project[sub_projects][]", sub_project do |subproject_form| %>
Bis hier lief alles gut aber wie definiere ich jetzt die Felder_für die Aufgaben? Der folgende Versuch ..
<% fields_for "project[sub_projects][works][]", work do |work_form| %>
.. ist nicht die Lösung, wie ich die folgende Fehlermeldung von Mischlings erhalten:
Widersprüchliche Typen für Parameter Container. Erwartete eine Instanz von Hash, aber eine Instanz von Array gefunden. Dies kann verursacht werden, indem Array und Hash-basierte Parameter übergeben werden. qs [] = Wert & qs [Schlüssel] = Wert.
Warum funktioniert das nicht? Und wie soll ich mein Problem angehen?
Hmm .. leider ist der Code, an dem ich arbeite, immer noch Rails 1.2.3 und das Zusammenführen zu 2.x oder sogar 3.x ist im Moment immer noch weit außerhalb meiner Liga .. – Mark
nach Aktualisierung meiner Anwendung auf 2.3 Es war definitiv der richtige Weg. Also danke für den Tipp. – Mark