0
1.9.3p448 :014 > l.reload
 => #<Lesson _id: 527246641d41c81d14000006, title: "ola"> 
1.9.3p448 :015 > l.changed?
 => false 
1.9.3p448 :016 > l.changes
 => {} 
1.9.3p448 :017 > l.previous_changes
 => {"title"=>["olaaaaa", "ola"]} 
1.9.3p448 :018 > l.changed?
 => false 
1.9.3p448 :019 > l.update_attributes(title: "olaaa")
 => true 
1.9.3p448 :020 > l.changes
 => {} 
1.9.3p448 :021 > l.changed?
 => false 

我已经更新了属性"title",但是当我尝试时,l.changed?我得到了false.

我知道new_record?方法,知道一个对象是否是一个新对象,但我需要知道一个对象是否被更新。

我想知道,我怎么知道一个对象是否已经用 mongoid 3.x 更新了?

4

1 回答 1

2

当您重新加载、保存、更新时,更改将移动到 previous_changes。您还可以访问回调的更改,否则您将不得不使用previous_changes. 这是设计使然,与 ActiveRecord 保持一致。

于 2013-10-31T15:58:15.477 回答