Ich habe gehört, dass Schienen eine schmutzige / wechselnde Flagge haben. Ist es möglich, das im after_commit Callback zu verwenden?
In meinem Benutzermodell habe ich:
%Vor% In def push_changes
Ich möchte gerne wissen, ob sich das Namensfeld geändert hat. Ist das möglich?
Sie können ein paar Dinge überprüfen ...
In erster Linie können Sie ein einzelnes Attribut als solches überprüfen:
%Vor%Sie können aber auch prüfen, welche Attribute sich im gesamten Modell geändert haben:
%Vor%Es gibt noch ein paar Dinge, die Sie auch tun können - besuchen Sie Ссылка für Details.
>Bearbeiten:
Da dies jedoch in einem after_commit
-Rückruf geschieht, wurde das Modell bereits gespeichert, was bedeutet, dass die Kenntnis der vor dem Speichern aufgetretenen Änderungen verloren gegangen ist. Sie könnten versuchen, den before_save
-Rückruf zu verwenden, um die Änderungen selbst auszuwählen, sie irgendwo zu speichern und dann wieder darauf zuzugreifen, wenn Sie after_commit
verwenden.
Sie können previous_changes in after_commit verwenden auf die Attributwerte eines Modells zugreifen, bevor es gespeichert wurde.
Siehe diesen Beitrag für weitere Informationen: after_commit für ein Attribut
Tags und Links ruby-on-rails-3 ruby-on-rails activemodel