检查对象是否已更新mongoid 3.x.

时间:2013-10-31 12:22:57

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2 mongoid mongoid3

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更新某个对象?

1 个答案:

答案 0 :(得分:2)

重新加载,保存,更新时,更改将移至previous_changes。您还可以访问回调更改,否则您必须使用previous_changes。 这就是设计,与ActiveRecord保持一致。