Ruby on Rails: Comment suivre les changements comme StackOverflow met en œuvre son histoire de révision?

StackOverflow https://stackoverflow.com/questions/3833187

Question

Si je devais mettre en place un système identique à l'historique des révisions de question StackOverflow avec Ruby on Rails , qu'est-ce que je dois faire pour y parvenir? Je crée un site qui agit comme un wiki où le contenu contribué utilisateur peut être mis à jour par d'autres personnes. Je dois être en mesure de suivre l'histoire de ces changements, mais je ne suis pas au courant de la façon de mettre en œuvre.

Solution:

En un mot, la façon dont cela fonctionne est de créer une table supplémentaire pour garder une trace des changements. Chaque ligne de la table a un « instantané » des données tel qu'il existait avant que l'enregistrement a été modifié (ou seulement les données modifiées).

Il y a un certain nombre de Ruby Gems qui ont déjà fait la plupart des travaux. Voici une liste des pierres précieuses qui traitent de l'histoire versioning / révision . Il ressemble à Paper Trail est actuellement le plus petit bijou populaire pour le faire. Ryan Bates a enregistré un Railscast fournissant un aperçu de l'utilisation du papier Trail.

Était-ce utile?

La solution

Lorsqu'une entrée est modifiée, vous ne supprimez pas le (vieux) entrée, vous suffit d'ajouter une nouvelle entrée avec un nouveau numéro de version. Lorsque vous souhaitez récupérer une entrée pour l'affichage, vous choisissez celui avec le plus grand nombre de version. Lorsque vous souhaitez récupérer une entrée pour afficher son historique de révision, vous choisissez tous et les trier par numéro de version.

Autres conseils

Je sais que c'est vieux, mais tous ceux qui se jette dans cela, vous devez Paper Trail

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top