Ruby on Rails: Как отслеживать изменения, как StackOverflow реализует свою историю изменений? - PullRequest
6 голосов
/ 30 сентября 2010

Если бы я внедрил систему, идентичную истории изменений вопроса StackOverflow, используя Ruby on Rails , что мне нужно было бы сделать для этого?Я создаю сайт, который действует как вики, где пользовательский контент может обновляться другими людьми.Мне нужно иметь возможность отслеживать историю этих изменений, но я не знаю, как это реализовать.

Решение:

Короче говоря, способ, которым это работает, заключается в создании дополнительной таблицы для отслеживания изменений.Каждая строка в таблице имеет «снимок» данных, существовавших до изменения записи (или только данных, которые изменились).

Существует ряд Ruby Gems, которые уже сделали большую частьРабота.Вот список гемов, которые имеют дело с историей версий / ревизий .Похоже, Paper Trail в настоящее время является самым популярным камнем для этого.Райан Бейтс записал RailsCast, предоставивший обзор использования Paper Trail .

Ответы [ 2 ]

3 голосов
/ 30 сентября 2010

Когда запись редактируется, вы не удаляете (старую) запись, вы просто добавляете новую запись с новым номером версии.Если вы хотите получить запись для отображения, вы выбираете запись с наибольшим номером версии.Если вы хотите получить запись, чтобы показать ее историю изменений, вы выбираете все из них и сортируете их по номеру версии.

1 голос
/ 22 ноября 2015

Я знаю, что это старый, но любой, кто сталкивается с этим, вы должны оформить заказ Paper Trail

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...