La documentazione cartacea ci consente di tenere traccia di tutte le modifiche ai dati del modello ai fini della modifica e del controllo delle versioni. Usando questo gioiello, possiamo vedere come appare un modello, in ogni fase del suo ciclo di vita e possiamo riportarlo a qualsiasi versione dei dati del modello e possiamo persino annullare tutte le modifiche dopo che un record è stato distrutto in modo da per ripristinarlo completamente.
gemma 'paper_trail' esegui bundle install per installarlo
Dopo l'installazione del bundle è possibile eseguire il comando seguente per aggiungere la tabella delle versioni al database
bundle exec rails genera paper_trail:install
bundle exec rake db:migrate
Aggiungi il metodo has_paper_trail ai tuoi modelli per il monitoraggio.
class Prodotto < ActiveRecord::Base has_paper_trail end
Se stai utilizzando un metodo current_user, puoi tenere traccia di chi è responsabile di una particolare modifica tramite il callback seguente
class ApplicationController before_action:set_paper_trail_whodunnit end
Caratteristiche della gemma della traccia cartacea
Memorizza ogni singola modifica avvenuta nel modello come creazione, aggiornamento e distruzione
Non memorizza alcun aggiornamento a meno che non siano apportate modifiche
Ti consente di ottenere ogni versione inclusa quella attuale e anche una volta distrutta
Utilizzo di base
Ora hai un metodo delle versioni che restituisce tutte le modifiche in un particolare modello
prodotto = Prodotto.trova 2 prodotti.versioni
# [, , ...]
In base alla versione puoi trovare le modifiche avvenute in un modello
v = prodotto.versioni.ultimo
v.event # restituisce aggiorna/crea/distruggi
v.whodunnit #it restituisce un ID utente che ha fatto ciò
v.reificare il prodotto com'era prima dell'aggiornamento
puoi navigare tra le versioni utilizzando i metodi previous_version e next_version
prodotto = prodotto.versione_precedente
prodotto = prodotto.next_version #it restituisce nil se non è presente alcun oggetto
product.versions.last.whodunnit #it restituisce l'utente che ha apportato la modifica specifica
RailsCarma ha fornito servizi di sviluppo di ruby on rails degli ultimi 8 anni I nostri sviluppatori sono esperti nel fare tutti i tipi di Sviluppo web di Ruby on Rails lavorare e gestire qualsiasi tipo di progetto. Contattaci per saperne di più sulle nostre capacità di sviluppo e sui progetti che possiamo gestire.