2011-07-13 284 views
1

如何在编辑记录时检查数据是否更改?更新记录时跟踪更改

所以之前更新

game.player=1 

更新/编辑后

game.player=2 

例如

如何跟踪变化(是否改变),并做一些Ruby on Rails的,当数据被改变。

回答

5

看一看ActiveModel::Dirty

您可以检查一个模型已做更改:

game.changed? 

或者像一个单独的领域:

game.player_changed? 

两种方法都返回一个布尔值。

+0

thanks =)did it =)所以我只需要做一些类似if(game.changed?== true)然后......? –

+0

或“game.changed?&& XXX”或只是“XXX if game.changed?” –

+0

这是不是在轨道4工作..什么是新的方法? – ratnakar

3

所有更改都保存在散列表中。如果您想使用这些值,这很方便。

game.changes #=> {:player => [1,2]}