Ruby on Rails: Как отслеживать изменения, такие как StackOverflow реализует свою историю изменений?

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

Решение:

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

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

6
задан Koen. 30 May 2013 в 19:40
поделиться