2011-08-27 51 views
7

有沒有辦法在保存之前識別對象/記錄是否髒,以及哪些字段在Rails中更改?在Rails中識別記錄/對象是否髒髒

假設我有一個Person模型和人有一個叫名字和年齡屬性。在db,id爲1人被命名爲「約翰」隨着年齡的20

p = Person.find 1 
p.name #John 
p.age #20 

現在,當我從約翰更改他的名字到彌敦道,有沒有辦法,我認

  1. 該對象被改變(髒)
  2. 和領域得到了改變

現在我知道的第一個答案。如果我改變了他的名字Nathna,我可以做以下

p.name = "Nathan" 
p.changed? #true 

不過,反正是有,我確定哪些領域進行了改變?可能是一種返回已更改的字段數組的方法?

p.dirty_fields #[:name] 

回答