2016-05-04 16 views
1

mit den folgenden Verbänden:Rails löscht bespielen bearbeiten und senden nicht

Workout has_many workout_sets through ...

workout_set has_many workout_steps through ...

Wenn der Bearbeitung eines Objekts ich folgendes Problem ich erlebt:

1) gehen zu /model/:id/edit

2) Überprüfung der Datenbank, sobald die Seite die Attribute der obersten Ebene lädt (die Nr n-nested) werden nach dem Laden der Seite aus der db gelöscht, aber die Auswahlmarkierungen haben die richtigen Werte ausgewählt, als ob im Moment des Ladens die Daten korrekt waren.

3) verlassen die Seite, ohne zu speichern (zu /model/:id Rückkehr) führt Folgendes aus:

  • 3,1) kann das Objekt nicht aktualisiert, aufgrund kein Formular abgeschickt wird.
  • 3.2) lassen Sie mich mit einem Modell ohne seine primären Eigenschaften, während die tiefsten verschachtelten Attribute unverändert bleiben.

Ich verwende cocoon und simple_form, um verschachtelte Modelle zu behandeln. Ist es etwas auf Rails, das ich vermisse?

S.S: Ich kann Code bei Bedarf bereitstellen.

+0

Bis jetzt haben eine [ähnliche Frage] (http://stackoverflow.com/questions/33610981/edit-form-deletes-arecord-from-the-database), aber die Lösung gefunden ist unklar. – alexunger

+0

Ja, bitte Code angeben. Vor allem die Definition von Assoziationen. Es ist mir unklar, was gelöscht wird. "Top-Level-Attribute" werden gelöscht? Du meinst also die Attribute von Workout (was ist das Top-Element?) Werden gelöscht? – nathanvda

+0

Hallo @nathanvda! schon behoben. Mit Top-Level-Attributen habe ich diejenigen gemeint, die nicht verschachtelt sind. Ein Workout hat zum Beispiel 'title',' description' (erste/oberste Ebene) ... und 'workout_sets', diese letzte ist eine Anordnung von Objekten. Aber sehen Sie sich die Antwort weiter unten an. – alexunger

Antwort

1

Für das Protokoll:

Die Lösung ist so einfach wie:

:force_non_association_create => true auf jeden link_to_add_association. Für weitere Informationen überprüfen this

Verwandte Themen