我想在更新对象之前保留其版本。
例如:
这是有关创建的文章:
#<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,
>
查看价格已更改,但我希望能够在会计表中将其全部报告:
日期|采购价格|价格
2月17日| 50 | 300 |
2月18日| 35 | 300 |
2月20日| 45 | 380 |
对不起,我不知道如何在此处创建降价表格
答案 0 :(得分:2)
会计表是一个数据库表
您可以使用previous_changes来检测更改内容,并在回调中更新会计表。
类文章
private
def log_to_accounting_table
p previous_changes
Accounting.create(....)
end
结束
与您的问题无关:我正在使用audited来跟踪更改。
会计表是一个Excel(OP真正想要的)
您将需要一个表来存储所有这些更改,即所谓的“旧版本”。 audited将为您提供帮助。然后,您要做的就是将数据从audits表导出到csv。 Check this out了解如何导出到excel。