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

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

Вопрос

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

Решение:

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

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

Это было полезно?

Решение

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top