从rails活动记录中获取旧属性值的哈希值

时间:2013-01-02 23:31:37

标签: ruby-on-rails-3 activerecord

我想通常访问模型中已更改的旧属性 - 也就是说,我想获取旧属性值的哈希值。我的代码对所有已更改的属性感兴趣,每次运行时都可能是不同的集合。

我知道您可以使用

获取一系列已更改的属性名称
model.changed

我知道你可以做到

model.attribute_was

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

我用它来创建有关对象的新闻报道,例如

  

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

1 个答案:

答案 0 :(得分:1)

您可以使用属性hash生成此数组:

old = model.changed.map{|attr| model.send("#{attr}_was".to_sym) }