¿Existe una versión mejor de algo como acts_as_paranoid para Rails 3?
-
28-10-2019 - |
Pregunta
¿Alguien sabe de una joya que elimina temporalmente registros de una base de datos (simplemente los marca como eliminados en lugar de como eliminados en realidad) y...
... además, cuando realiza cualquier tipo de búsqueda, omite automáticamente esos registros descartados sin utilizar ningún ámbito especial definido por el usuario.P.ej.todo tiene lugar en la gema.
¡Salud!
Solución
Es posible que desee pagar Paper_trail
Otros consejos
DHH es un fanático de hacer esto con 'preocupaciones' que básicamente son solo mezclas de módulos y me gusta ese enfoque minimalista.
Aquí está la versión de DHH - https://gist.github.com/1014971
Aquí está mi versión de bugfixed - https://gist.github.com/4032984
Paper_trail tiene muchas características y está bien probado (ha existido durante mucho tiempo).
Si solo desea la funcionalidad especificada, consulte:
Paranoia
los Paranoia joya del abiertamente talentoso Radar es lo que estarías buscando.
Es esencialmente una reescritura de acts_as_paranoid (y usa muchas de las mismas convenciones) pero es más pequeño, más rápido y compatible con los rieles 3 y 4.
Realiza ambas solicitudes:
Establece automáticamente un
deleted_at
marca de tiempo cuando undestroy
El método se llama a un objeto cuya clase incluyeacts_as_paranoid
.Establece automáticamente una condición en cualquier consulta que garantice
deleted_at IS NULL
, a menos que incluyaswith_deleted
en tu cadena de consultas.
No podía decir suficientes cosas buenas sobre la biblioteca o el radar.
Bonificación: Su documentación podría ser la mejor en el "negocio".
Yo uso la gema de descarte. Es una manera bastante simple para los registros de eliminación suave.https://www.rubydoc.info/gems/discard/1.0.0