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!

¿Fue útil?

Solución

Es posible que desee pagar Paper_trail

https://github.com/airblade/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:

https://github.com/grosser/soft_deletion

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:

  1. Establece automáticamente un deleted_at marca de tiempo cuando un destroy El método se llama a un objeto cuya clase incluye acts_as_paranoid.

  2. Establece automáticamente una condición en cualquier consulta que garantice deleted_at IS NULL, a menos que incluyas with_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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top