我有没有办法在保存之前确定一个对象/记录是否脏,以及在 Rails 中更改了哪些字段?
例子
假设我有一个 Person 模型,Person 有一个名为 name 和 age 的属性。在数据库中,id 为 1 的人名为“John”,年龄为 20。
p = Person.find 1
p.name #John
p.age #20
现在,当我将他的名字从 John 更改为 Nathan 时,我有什么办法可以识别
- 对象被改变(脏)
- 哪些字段发生了变化
现在我知道第一个问题的答案了。如果我将他的名字改为 Nathna,我可以执行以下操作
p.name = "Nathan"
p.changed? #true
但是,我是否可以确定更改了哪个字段?可能是一种返回已更改字段数组的方法?
p.dirty_fields #[:name]
最佳答案
关于ruby-on-rails - 在 Rails 中识别记录/对象是否脏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211693/