Nur über diese gestolpert, erkennen seine ein bisschen alt jetzt aber dachte, ich meine Lösung teilen würde, wie ich die gleiche Forderung hatte. Dies ist nur eine Teillösung, aber es funktioniert mich
ich die PaperTrail Version Klasse erweitert und außer Kraft gesetzt, die item_type Getter
class AuditTrail < PaperTrail::Version
xss_foliate :except => [:object, :object_changes]
def item_type
if(self[:item_type] == "SomethingIWantToChange")
return "Different String"
end
return self[:item_type]
end
end
Ich habe dann jedes meiner Modelle setzen diese Klasse zu verwenden, etwa so:
has_paper_trail :class_name => 'AuditTrail'
Dann kann ich die Versionen Tabelle abfragen und zurückgegebenen Objekte wird durch das überschriebene Getter laufen und die item_type wird, als ich brauche:
audit_records = AuditTrail.where(someproperty: "something")
So ist dies nicht tatsächlich in der DB ändern, wenn es geschrieben wird, aber es ist der beste Weg, ich es anders zu meinem Frontend finden konnte
Hinweis präsentieren, dass es nicht die item_type wenn Sie nicht ändert holen Versionen ohne eine Abfrage vom erweiterten Objekt dh mit:
Someobject.find(1).versions.last
^dies gibt immer noch die item_type von der DB
ich den Titel und nach aktualisiert. Es ist für den Papierpfad Juwel. –