Wie überspringen Rückrufe auf Mongoid Dokumente?
Meine Frage ist ähnlich wie diese Wie überspringen von ActiveRecord Rückrufe? aber statt AR, ich bin mit Mongoid, wie Es scheint, das ist noch nicht implementiert in der aktuellen version von Mongoid, also ich würde gerne wissen, was sollte eine elegante Lösung, um es zu implementieren. (falls erforderlich).
- welche version von Mongoid ? Mongoid 1.9.0 oder Mongoid 2.0.0.beta ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie können!
Mongoid ist gebaut auf ActiveModel und ActiveModel eine skip_callback Funktion. Sie können
skip_callback
wie diese:Bin ich mit diesem ohne Probleme in einer großen app. Weitere Informationen finden Sie in diesem blog-post von Jeff Kreeftmeijer:
http://jeffkreeftmeijer.com/2010/disabling-activemodel-callbacks/
u.save!(validate: false)
wäreu.save!(callbacks: false)
Könnte es einfacher sein zu verwenden, die Mongoid Atomare Operationen (set, unset, etc):
http://mongoid.org/en/mongoid/docs/persistence.html#atomic
Diese nicht Feuer Rückrufe.
Edit: Mongoid 3 sagt, dass Sie nicht Feuer Rückrufe. Ich sehe Sie Feuer Rückrufe in Mongoid 2 obwohl. So YMMV
Landete ich mit Brian Armstrong ' s Vorschlag und Aufruf einfach
in meinem nach speichern Rückruf.
Oft das kommt, wenn Sie möchten ein update zu tun, ohne brennen alle Rückrufe auf ein großes Volumen der Gegenstände. Dies geschieht durch Abstieg zu den Treiber:
Ersetzt 'foo' mit 'bar' in der 'x' - Feld.
Suche ich auf den code. Und es gibt keine Möglichkeit zu vermeiden, Rückruf in Mongoid. In beiden Versionen 1.9 und 2.0.
Müssen Sie machte einen patch oder eine feature-Anfrage, dass etwa.