Rails after_save Callback wird mehrmals aufgerufen

9

Ich versuche über ein Mixin einen after_save-Callback zu injizieren, aber meine rspec-Tests sagen mir, dass der Callback zweimal aufgerufen wird, wenn die create -Methode aufgerufen wird. Warum wird die Methode zweimal aufgerufen?

Der folgende rspec-Test schlägt fehl

%Vor%

Die Fehlermeldung lautet:

%Vor%

Hier ist der Code

%Vor%

Die Produktklasse hat anderen Code, aber keine anderen Callbacks.

    
Brian Glick 29.09.2011, 21:13
quelle

1 Antwort

5

after_save ist Teil der Transaktion und kann daher mehr als einmal aufgerufen werden, vorausgesetzt, Sie haben andere verknüpfte Objekte, die ebenfalls gespeichert werden müssen. In solchen Fällen wechsle ich typischerweise vom Rückruf nach dem Speichern zum Rückruf nach Rückruf, der erst nach Abschluss der Transaktion ausgeführt wird.

    
heavysixer 06.11.2011, 20:52
quelle