ruby-on-rails - index - rubyonrails
¿Cuál es la mejor manera de mantener el historial de edición de un registro con Rails y ActiveRecord? (3)
acts_as_audited gana indiscutiblemente. Incluso puedes usar acts_as_versioned con él. La página de complementos explica todo. Repase los comentarios de discusión debajo de la publicación en la página. Los desarrolladores han publicado problemas y han obtenido respuestas positivas del autor y otros.
He usado este complemento en muchas aplicaciones y lo encuentro muy útil. Muy recomendable.
Aquí hay una vista previa de la página del complemento:
acts_as_audited es un complemento de registro activo que registra todas las modificaciones de sus modelos en una tabla de auditorías. Utiliza una asociación polimórfica para almacenar un registro de auditoría de cualquiera de los objetos modelo que desea auditar. El registro de auditoría almacena el modelo en el que se realizó el cambio, la "acción" (crear, actualizar, destruir), un hash serializado de los cambios y, opcionalmente, el usuario que realizó la acción.
¿Cuál es la mejor / más limpia / más fácil manera de mantener el historial de edición de registros en Rails?
Estoy buscando el registro: quién realizó las ediciones y cuándo y la capacidad de retrotraer a versiones anteriores de los registros.
Supongo que utilizaría devoluciones de llamada de ActiveRecord en actualizaciones o eliminaciones y en lugar de actualizar / eliminar registros crearía uno nuevo y tendría algún tipo de identificador para mantener el mismo "registro" asociado, tal vez un campo para distinguir qué registro es actual y un campo de versión.
Recuerdo vagamente haber visto algunos complementos pero parece que no puedo encontrarlos en este momento.
(¿Hay un término para esto que no sé?)
acts_as_versioned debe hacer lo que estás buscando - http://wiki.rubyonrails.org/rails/pages/ActsAsVersioned
Las respuestas aquí son buenas, pero necesitan algunas actualizaciones.
acts_as_audited se ha renombrado como auditado, consulte https://github.com/collectiveidea/audited . Lo he usado con gran éxito.
paper_trail también puede ser de interés. http://railscasts.com/episodes/255-undo-with-paper-trail restauración de versiones es un poco incómodo e indocumentado en audited / acts_as_audited. paper_trail tiene ejemplos más claros para este aspecto.