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更新某个对象?
答案 0 :(得分:2)
重新加载,保存,更新时,更改将移至previous_changes。您还可以访问回调更改,否则您必须使用previous_changes
。
这就是设计,与ActiveRecord保持一致。