Muss ich Änderungen an einzelnen Elementen in einer Objektgruppe für ein Modell speichern oder gibt es eine Methode, die ich aufrufen kann, um sie beim Speichern des Modells zu speichern.
#save
scheint es nicht zu tun. Zum Beispiel:
Im obigen Beispiel scheint die Kopie der DVD, die der Verleih hat, die Kopie in der DB nicht zu aktualisieren (beachten Sie die abweichende Anzahl der Kopien).
Machen Sie einfach eine rental.dvd.save, nachdem Sie den Wert erhöht haben oder im obigen Fall könnten Sie
verwenden %Vor%was auch automatisch speichert, notieren Sie das '!' auf Inkrement!
Sie können ActiveRecord so konfigurieren, dass Änderungen an Elementen in einer Auflistung für ein Modell in Kaskade gespeichert werden, indem die Option :autosave => true
beim Deklarieren der Verknüpfung hinzugefügt wird. Lesen Sie mehr .
Beispiel:
%Vor%Sie müssen das selbst tun
Das ist nicht ganz richtig. Sie können die "Build" -Methode verwenden, die ein Speichern erzwingt. Nehmen Sie als Beispiel an, dass Sie ein Unternehmensmodell und Mitarbeiter haben (Unternehmen hat viele Mitarbeiter). Sie könnten etwas tun wie:
%Vor%Würde alle 4 Datensätze, den Unternehmensdatensatz und die 3 Mitarbeiterdatensätze erstellen, und die Firmen-ID würde entsprechend auf das Mitarbeiter-Objekt übertragen.
Sie müssen das selbst machen. Active Record kaskuliert keine Sicherungsoperationen in has_many-Beziehungen nach dem ersten Speichern.
Sie könnten den Prozess mit einem before_save
Callback automatisieren.
Tags und Links ruby ruby-on-rails activerecord