更新记录时跟踪更改

时间:2011-07-13 12:06:06

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

编辑记录时,如何检查数据是否已更改?

所以在更新之前

game.player=1

更新/编辑后

game.player=2

例如

当数据发生变化时,如何跟踪更改(检查是否已更改)并在ruby上执行某些操作。

2 个答案:

答案 0 :(得分:5)

查看ActiveModel::Dirty

您可以通过执行以下操作检查模型是否已更改:

game.changed?

或者是个别字段:

game.player_changed?

两者都返回一个布尔值。

答案 1 :(得分:3)

所有更改也都保存在哈希中。如果您想使用这些值,这会派上用场。

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