Rails - Как хранить каждое обновление элемента - PullRequest
2 голосов
/ 03 марта 2012

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

У меня есть таблица продуктов с этими полями

  • Имя
  • Количество
  • Цена
  • Размер

и столбцы, которые предоставляют рельсы (id, made_at, updated_at)

Эта таблица будет периодически обновляться (скажем, каждый день или около того), но я хочу сохранить КОЛИЧЕСТВО, которое ДОБАВЛЯЕТСЯ, и дату / время актуализации (ОБНОВЛЕНИЕ).

Я не уверен, если это проблема дизайна или что-то еще.

Есть ли способ, которым рельсы могут справиться с этим?

Заранее спасибо

Хавьер QQ.

Ответы [ 2 ]

2 голосов
/ 03 марта 2012

Учитывая то, что вы сказали в ваших комментариях, почему бы вам просто не создать новую таблицу, скажем, таблицу "Stock". Каждая акция имеет два поля (в дополнение к стандартным созданным по умолчанию и обновленным_отчетам): количество и идентификатор товара.

Всякий раз, когда вы хотите обновить товар новым количеством, в методе обновления (или методе запасов, каким бы он ни был) вы делаете:

Stock.create(:item_id => @item.id, :quantity => params[:quantity])

Это также гарантирует, что вы знаете, когда был добавлен запас, потому что Rails будет автоматически отслеживать, когда был сделан этот запас.

1 голос
/ 03 марта 2012

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

...