сохранить версию объекта до его обновления - PullRequest
0 голосов
/ 20 февраля 2019

Я бы хотел сохранить версию объекта до его обновления.

Например:

Это статья о создании:

#<Article:0x007fc32af4c910
 id:1,
 title: "Guitar",
 price: 300,
 buying_price: 50,
 created_at: Sun, 17 Feb 2019 14:39:21 UTC +00:00,
 updated_at: Sun, 17 Feb 2019 14:39:21 UTC +00:00,
 >

Это обновление статьи:

#<Article:0x007fc32af4c910
 id:1,
 title: "Guitar",
 price: 300,
 buying_price: 35,
 created_at: Sun, 17 Feb 2019 14:39:21 UTC +00:00,
 updated_at: Mon, 18 Feb 2019 14:39:21 UTC +00:00,
 >

Этоеще одно обновление статьи:

#<Article:0x007fc32af4c910
 id:1,
 title: "Guitar",
 price: 380,
 buying_price: 45
 created_at: Sun,17 Feb 2019 14:39:21 UTC +00:00,
 updated_at: Wed, 20 Feb 2019 14:39:21 UTC +00:00,
 >

Посмотрите, как изменились цены, но я хочу иметь возможность сообщать о них все в бухгалтерской таблице:

дата |buy_price |цена

  • 17 фев | 50 | 300 |

  • 18 фев | 35 | 300 |

  • 20 фев | 45 | 380 |

извините, я не знаю, как создать таблицу по уценке здесь

1 Ответ

0 голосов
/ 20 февраля 2019
  1. Таблица учета - это таблица БД.

    . Вы можете использовать previous_changes , чтобы определить, что изменилось, и в обратном вызове для обновления таблицы учета.

    статья класса after_save: log_to_accounting_table

     private 
    
     def log_to_accounting_table
       p previous_changes
       Accounting.create(....)
     end
    

    end

    Не относится к вашей проблеме: я использую audited для отслеживания изменений.

  2. Таблица учета - это Excel (то, что ОП действительно хотел)

    Вам понадобится таблица для хранения всех этих изменений, «старых версий», как вы их называете. проверено поможет вам.Тогда все, что вам нужно сделать, это экспортировать данные из таблицы аудита в CSV. Проверьте это , чтобы узнать, как экспортировать в Excel.

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