Description


PaperTrail est une gem utilisée pour tracker les changements faits sur un objet.

https://github.com/paper-trail-gem/paper_trail

Méthodes


1.Installation

Copier dans le Gemfile la gem paper_trail gem 'paper_trail’ puis lancer ces 2 commandes:

bundle exec rails generate paper_trail:install --with-changes --uuid
bundle exec rails db:migrate

2. Ajouter has_paper_trail dans le model

class Model < ActiveRecord::Base
  has_paper_trail
end

3. Tracker le responsable du changement

class ApplicationController
  before_action :set_paper_trail_whodunnit
end

4. Manier l’objet pour récupérer les infos souhaitées

# Récupérer toutes les versions/changement de l'objet
model.versions
# [<PaperTrail::Version>, <PaperTrail::Version>, ...]

# Par exemple sur le dernier changement
version = model.version.last

# Récupérer qui est responsable du changement
version.whodunnit # ID of `current_user`.

# Récupérer l'évènment
version.event # 'update', 'create'...

# Récupérer exactement ce qui a été changé
version.changeset
# {
#   "name"=>["Bob", "Robert"],
#   "updated_at"=>[2015-08-10 04:13:19 UTC, 2015-08-10 04:13:19 UTC]
# }
# Ici on a pour le name, la version d'avant 'Bob' et la version d'après 'Robert'

Autre


💡 Conseils et avertissements

Une liste d’erreurs souvent rencontrées et de choses auxquelles penser en appliquant une de ces méthodes

🔗 Relié à