Ich kann nicht herausfinden, wie die Eingabehelfer der geschachtelten Ressourcen in Active Admin verwendet werden, damit ich die Werte der zugehörigen Datensätze für den "übergeordneten" Datensatz aktualisieren kann.
Das Modell, für das ich ein Update erstellen möchte, ist wie folgt:
%Vor% wobei PageAttribute
zwei Attribute hat, :key
und :value
Und das ActiveAdmin-Modell ist:
%Vor% Wenn ich jedoch http://localhost:3000/admin/pages/2/edit
aufrufe und den Wert eines vorhandenen Attributs ändere (oder wenn ich das Kontrollkästchen Löschen aktiviere), wird stattdessen ein neuer Datensatz für das PageAttribute
-Modell erstellt und die vorhandenen Verknüpfungen erstellt bleiben unberührt.
Ich lese die Active-Admin-Dokumentation zu geschachtelten Ressourcen und eine Reihe von SO-Posts durch kann aber nicht herausfinden, was ich falsch mache :(
Ich habe realisiert, was ich falsch gemacht habe - ich habe es ein wenig überbewertet. Ich wusste nicht, dass Sie, wenn Sie starke Parameter zulassen, auch den Parameter :id
für einen verknüpften Datensatz zulassen müssen, den Sie zu aktualisieren versuchen. Ich vermutete, dass die Magie von Rails dafür sorgen würde.
Es funktioniert also, wenn Sie den Aufruf permit_params
ändern, um stattdessen Folgendes zu sagen:
Tatsächlich ist das the Strong Parameter Abschnitt auf dem Active Admin Github Wiki sagt zu tun, ich hätte darauf achten müssen, warum es so eingerichtet wurde.
Tags und Links ruby-on-rails activeadmin nested-attributes