有没有办法可以知道我的模型中更新了哪些属性?我只想在发布某个属性时对用户进行验证。这实际上是通过参数发送的哈希值 例如:
@user.update_attributes(params[:user])
感谢。
答案 0 :(得分:3)
这在ActiveRecord::Dirty模块中可用,默认包含该模块。
changed
方法会为您提供未保存更改的属性列表。 changes
方法将为您提供未保存更改的哈希值,其中键是属性名称,值是由原始值和新值组成的数组。
例如:
@user.changed # => ['name', 'age']
@user.changes # => { 'name' => ['Bill', 'John'], 'age' => [18, 21] }