0

我想一般地访问模型中已更改的旧属性 - 也就是说,我想获取旧属性值的散列。我的代码对所有已更改的属性感兴趣,每次运行时可能是不同的设置。

我知道你可以得到一组更改的属性名称

model.changed

我知道你能做到

model.attribute_was

如果您知道名称,则获取属性的旧值,但是我找不到以编程方式将两者结合或以其他方式获取旧值集的方法

我用它来创建关于对象的新闻故事,例如

用户 'Bob' 将 x 从 a 更改为 b

4

1 回答 1

1

您可以使用属性哈希来生成此数组:

old = model.changed.map{|attr| model.send("#{attr}_was".to_sym) }
于 2013-01-02T23:37:37.280 回答