Schienen, die schmutzig oder verändert verwenden? Flag mit after_commit

8

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?

    
AnApprentice 23.08.2011, 01:11
quelle

2 Antworten

10

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.

    
BaronVonBraun 23.08.2011, 01:17
quelle
19

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

    
Yoni 29.05.2013 21:00
quelle