Esiste una versione migliore di qualcosa come ACTS_AS_Paranoid per Rails 3?
-
28-10-2019 - |
Domanda
Qualcuno sa di una gemma che entrambi i record di eliminazione soft da un database (li segna solo come eliminati rispetto a quelli che sono effettivamente eliminati) e ...
... anche quando qualsiasi tipo di ricerca omette automaticamente quei record spazzati senza utilizzare ambiti speciali definiti dall'utente. Ad esempio, tutto si svolge nella gemma.
Saluti!
Soluzione
Potresti voler controllare Paper_Trail
Altri suggerimenti
DHH è un fan di farlo con "preoccupazioni" che sono fondamentalmente solo mixin di moduli e mi piace quell'approccio minimalista.
Ecco la versione di Dhh - https://gist.github.com/1014971
Ecco la mia versione di Bugfixed - https://gist.github.com/4032984
Paper_Trail ha molte funzionalità ed è ben testato (da molto tempo).
Se vuoi solo la funzionalità specificata, dai un'occhiata:
Paranoia
Il Paranoia gemma dal talentuoso apertamente Radar è quello che cercheresti.
È essenzialmente una riscrittura di Acts_AS_Paranoid (e usa molte delle stesse convenzioni) ma è più piccolo, più veloce e compatibile con le rotaie 3 e 4.
Realizza entrambe le tue richieste:
Imposta automaticamente a
deleted_at
timestamp quando adestroy
Il metodo è chiamato su un oggetto la cui classe includeacts_as_paranoid
.Imposta automaticamente una condizione su qualsiasi domanda che garantisce
deleted_at IS NULL
, a meno che tu non includawith_deleted
Nella tua catena di query.
Non potevo dire abbastanza cose buone sulla biblioteca o il radar.
Bonus: la sua documentazione potrebbe essere la migliore nel "business".
Uso scarto gemma. È un modo abbastanza semplice per i record di cancellazione soft.https://www.rubydoc.info/gems/discard/1.0.0