Spåra ändringar i din modells data med Paper Trail Gem

Pappersspår låter oss spåra alla förändringar i modelldata för redigering och versionshantering. Genom att använda denna pärla kan vi se hur en modell ser ut, i varje skede av dess livscykel och vi kan ta tillbaka den till valfri version av modelldata och vi kan till och med ångra alla ändringar efter att en post har förstörts så att för att återställa den helt.

pärla 'pappersspår' kör paketinstallationen för att installera den

Efter paketinstallationen kan du köra följande kommando för att lägga till versionstabell till din databas

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

Lägg till metoden has_paper_trail till dina modeller för spårning.

klass Produkt < ActiveRecord::Base has_paper_trail end

Om du använder en current_user-metod kan du spåra vem som är ansvarig för en viss förändring genom att ringa tillbaka nedan

klass ApplicationController before_action :set_paper_trail_whodunnit slut


Funktioner av papper spår pärla

Den lagrar varje förändring som skett i modellen som att skapa, uppdatera och förstöra
Det lagrar inga uppdateringar såvida det inte finns några ändringar
Det låter dig få alla versioner inklusive den faktiska och till och med en gång förstörd

Grundläggande användning

Nu har du en versionsmetod som returnerar alla ändringar i en viss modell

produkt = Produkt.hitta 2 produktversioner
# [, , ...]

Baserat på versionen kan du hitta de förändringar som skett i en modell

v = product.versions.last

v.event # den returnerar uppdatera / skapa / förstöra
v.whodunnit #it returnerar ett användar-id som gjorde detta
v.reify produkten som den var före uppdateringen

du kan navigera i versioner genom att använda metoderna previous_version och next_version

produkt = produkt.föregående_version

product = product.next_version #it returnerar noll om det inte finns något objekt

product.versions.last.whodunnit #it returnerar användaren som gjorde den specifika ändringen

RailsCarma har tillhandahållit utvecklingstjänster för ruby on rails från de senaste 8 åren Våra utvecklare är väl insatta i att göra alla typer av Ruby on Rails webbutveckling arbeta och hantera alla typer av projekt. Kontakta oss för att veta mer om vår utvecklingskompetens och de projekt som vi kan hantera.

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish