Verfolgen Sie Änderungen an den Daten Ihres Modells mit Paper Trail Gem

Mit Paper Trail können wir alle Änderungen an den Modelldaten zum Zwecke der Bearbeitung und Versionierung verfolgen. Mithilfe dieses Edelsteins können wir sehen, wie ein Modell in jeder Phase seines Lebenszyklus aussieht, und wir können zu jeder Version der Modelldaten zurückkehren und sogar alle Änderungen rückgängig machen, nachdem ein Datensatz zerstört wurde, um ihn vollständig wiederherzustellen.

Juwel paper_trail' Führen Sie bundle install aus, um es zu installieren.

Nach der Bundle-Installation können Sie den folgenden Befehl ausführen, um die Tabelle Versionen zu Ihrer Datenbank hinzuzufügen

bundle exec rails generate paper_trail:install
bundle exec rake db:migrate

Fügen Sie Ihren Modellen die Methode has_paper_trail zur Nachverfolgung hinzu.

Klasse Produkt < ActiveRecord::Base
  	has_paper_trail
	end

Wenn Sie eine current_user-Methode verwenden, können Sie mit dem folgenden Callback nachvollziehen, wer für eine bestimmte Änderung verantwortlich ist

Klasse ApplicationController
	  before_action :set_paper_trail_whodunnit
	end


Merkmale von paper trail gem

Es speichert jede Änderung im Modell, wie z.B. Erstellen, Aktualisieren und Zerstören
Es speichert keine Aktualisierungen, es sei denn, es werden Änderungen vorgenommen.
Es ermöglicht Ihnen, jede Version zu erhalten, einschließlich der aktuellen und sogar einmal zerstörten

Grundlegende Verwendung

Jetzt haben Sie eine Versionsmethode, die alle Änderungen in einem bestimmten Modell zurückgibt

Produkt = Produkt.finden 2
	produkt.versionen
# [, , ...]

Anhand der Vesrion können Sie feststellen, welche Änderungen in einem Modell vorgenommen wurden

v = produkt.versionen.letzte

v.event # liefert Update / Create / Destroy
v.whodunnit #it liefert eine Benutzerkennung, die dies getan hat
v.reify das Podukt so, wie es vor der Aktualisierung war

Sie können mit den Methoden previous_version und next_version durch die Versionen navigieren

produkt = produkt.vorherige_version

product = product.next_version #it gibt nil zurück, wenn es kein Objekt gibt

product.versions.last.whodunnit #it liefert den Benutzer, der die jeweilige Änderung vorgenommen hat

RailsCarma bietet seit Jahren Ruby on Rails-Entwicklungsdienste seit 8 Jahren Unsere Entwickler sind sehr versiert in der Durchführung aller Arten von Ruby on Rails-Webentwicklung arbeiten und jede Art von Projekt bearbeiten. Kontaktieren Sie uns, um mehr über unsere Entwicklungsfähigkeiten und die Projekte, die wir bearbeiten können, zu erfahren.

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman