RoR: сделать функцию контроля версий в стороне моего приложения? - PullRequest
0 голосов
/ 07 февраля 2011

Каким будет рельсовый способ реализации контроля версий в моем приложении для управления записями?

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

это все теоретическое мышление, так как я еще не начал кодировать, если я пропустил что-то, что я должен также рассмотреть, пожалуйста, дайте мне знать.

Спасибо

Ответы [ 3 ]

1 голос
/ 06 марта 2011

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

Затем вы можете получить самую последнюю версию каждой записи, найдя самую последнюю обновленную / созданную запись с уникальным вторичным_идентификатором.

0 голосов
/ 07 февраля 2011

Вот 2 из моих идей:

1-й простой:

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

2-й (детали из SAP):

Ваша запись имеет 2 дополнительных поля: startTime и stopTime. Время - это время, когда запись начинает действовать и перестает действовать. Вставляя новую запись, вы обновляете stopTime последней, ставя сейчас как startTime новой, и конец света для stopTime новой

0 голосов
/ 07 февраля 2011

Хорошей отправной точкой может быть vestal version gem, который хранит историю измененных записей

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