Gibt es eine bessere Version von so etwas wie ACTS_AS_PARANOID für Rails 3?
-
28-10-2019 - |
Frage
Kennt jemand ein Juwel, das beide Soft -Deletes -Datensätze aus einer Datenbank (einfach als gelöscht und im Gegensatz zu tatsächlich gelöscht werden) und ...
... Auch wann lässt Sie diese Art von Fund diese Müllplatten automatisch aus, ohne dass spezielle benutzerdefinierte Bereiche verwendet werden. ZB das alles findet im Edelstein statt.
Prost!
Lösung
Vielleicht möchten Sie Paper_trail auschecken
Andere Tipps
DHH ist ein Fan davon mit "Bedenken", die im Grunde genommen nur Modulmixins sind, und ich mag diesen minimalistischen Ansatz.
Hier ist Dhhs Version - https://gist.github.com/1014971
Hier ist meine fehlerhafte Version - https://gist.github.com/4032984
paper_trail hat viele Funktionen und ist gut getestet (schon lange da).
Wenn Sie nur die angegebene Funktionalität wünschen, lesen Sie:
Paranoia
Das Paranoia Juwel aus dem offen talentierten Radar ist das, wonach Sie suchen würden.
Es ist im Wesentlichen ein Umschreiben von ACTS_AS_PARANOID (und verwendet viele der gleichen Konventionen), ist aber kleiner, schneller und kompatibel mit Schienen 3 und 4.
Es wird beide Anfragen erreicht:
Setzt automatisch a
deleted_at
Zeitstempel, wenn adestroy
Methode wird auf ein Objekt aufgerufen, dessen Klasse enthältacts_as_paranoid
.Legt automatisch eine Bedingung auf alle Abfragen fest, die sichern
deleted_at IS NULL
, es sei denn, Sie schließen einwith_deleted
in Ihrer Abfragekette.
Konnte nicht genug gute Dinge über die Bibliothek oder das Radar sagen.
Bonus: Seine Dokumentation könnte die beste im "Geschäft" sein.
Ich benutze das Edelstein -Edelstein. Es ist eine ganz einfache Möglichkeit für weiche Löschdatensätze.https://www.rubydoc.info/gesems/discard/1.0.0