6 Stimmen

Ruby on Rails: Wie kann man Änderungen nachverfolgen, so wie StackOverflow seinen Revisionsverlauf implementiert?

Wenn ich ein System implementieren würde, das mit dem StackOverflow-Fragenrevisionsverlauf identisch ist und Ruby on Rails Was müsste ich tun, um das zu erreichen? Ich bin dabei, eine Website zu erstellen, die wie ein Wiki funktioniert, in dem die von den Nutzern beigetragenen Inhalte von anderen Personen aktualisiert werden können. Ich muss in der Lage sein, den Verlauf dieser Änderungen zu verfolgen, aber ich weiß nicht, wie ich das umsetzen soll.

Lösung:

Kurz gesagt, besteht die Funktionsweise darin, eine zusätzliche Tabelle zu erstellen, um die Änderungen zu verfolgen. Jede Zeile in der Tabelle enthält einen "Schnappschuss" der Daten, wie sie vor der Änderung des Datensatzes vorlagen (oder nur die Daten, die sich geändert haben).

Es gibt eine Reihe von Ruby Gems, die den größten Teil der Arbeit bereits erledigt haben. Hier ist eine Liste von Edelsteine, die sich mit der Versions-/Revisionsgeschichte befassen . Es sieht so aus Papierspur ist derzeit der beliebteste Edelstein für diese Aufgabe. Ryan Bates hat einen RailsCast aufgezeichnet, der eine Überblick über die Verwendung von Paper Trail .

3voto

dty Punkte 18552

Wenn ein Eintrag bearbeitet wird, löschen Sie nicht den (alten) Eintrag, sondern fügen einen neuen Eintrag mit einer neuen Versionsnummer hinzu. Wenn Sie einen Eintrag zur Anzeige abrufen wollen, wählen Sie den Eintrag mit der höchsten Versionsnummer. Wenn Sie einen Eintrag abrufen wollen, um seinen Änderungsverlauf anzuzeigen, wählen Sie alle Einträge aus und sortieren sie nach Versionsnummer.

1voto

Ich weiß, dies ist alt, aber jeder, der darauf stößt, sollte es überprüfen Papierspur

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X