den*_*iss 7 ruby activerecord ruby-on-rails ruby-on-rails-3
反正我是否在保存之前识别对象/记录是否脏,以及在Rails中哪些字段发生了变化?
例
假设我有一个Person模型,Person有一个名为name和age的属性.在db中,id为1的Person在20岁时被命名为"John".
p = Person.find 1
p.name #John
p.age #20
Run Code Online (Sandbox Code Playgroud)
现在,当我把他的名字从约翰改为内森时,我有什么方法可以识别
现在我知道第一个答案.如果我改名为Nathna,我可以做以下事情
p.name = "Nathan"
p.changed? #true
Run Code Online (Sandbox Code Playgroud)
但是,无论如何,我是否确定哪个字段已更改?可能是一个返回已更改的字段数组的方法?
p.dirty_fields #[:name]
Run Code Online (Sandbox Code Playgroud)