Версия экземпляра модели?Отслеживание предыдущих записей - PullRequest
1 голос
/ 12 июня 2011

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

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

Record
:id
:name
:record_id #=> this refers to the original Record

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

1 Ответ

2 голосов
/ 12 июня 2011

Вы хотели бы посмотреть на драгоценный камень, как papertrail Тогда вы можете настроить управление версиями для объекта.Использовать гем также легко, после его настройки вы можете использовать его, и он вернет массив версий:

>> widget = Widget.find 42
>> widget.versions             # [<Version>, <Version>, ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...