我开始使用Paper Trail gem,我有这个产品型号:
在我的product.rb里面我有这个:
所以一切正常,我只对单个产品进行2次更新,只修改了数量。 在我的rails控制台中,我执行了以下操作:
Product.last.versions.map(&:object)
得到了这个
[“--- \ nname:p1 \ nqty:20 \ ncolor:c1 \ ncreated_at:2012-03-14 03:02:22.186453000 Z \ nupdated_at:2012-03-14 03:02:22.186453000 Z \ nid:3 \ n“,”--- \ nname:p1 \ nqty:40 \ ncolor:c1 \ ncreated_at:2012-03-14 03:02:22.186453000 Z \ nupdated_at:2012-03-14 03:07 :53.291624000 Z \ nid:3 \ n“]
当我这样做时:
puts Product.last.versions.map(&:object)
我明白了:
---
name: p1
qty: 20
color: c1
created_at: 2012-03-14 03:02:22.186453000 Z
updated_at: 2012-03-14 03:02:22.186453000 Z
id: 3
---
name: p1
qty: 40
color: c1
created_at: 2012-03-14 03:02:22.186453000 Z
updated_at: 2012-03-14 03:07:53.291624000 Z
id: 3
我想知道如何获得每次变化的数量。我虽然是正则表达式,但我不确定如何。
我想在我看来显示这个
产品:
姓名:c1数量:980
的变化:
有什么建议吗?
提前致谢
答案 0 :(得分:0)
序列化为YAML。有一种方法可以做到这一点。我正在使用从版本映射中获得的product_versions
对象。
product_versions.map{ |product_version| YAML::load(product_version)}.map{|item| [item["updated_at"],item["qty"]]}
这会给你
[[2012-03-14 03:02:22 UTC, 20], [2012-03-14 03:07:53 UTC, 40]]