2011-08-27 9 views
7

保存する前にオブジェクト/レコードが汚れていないかどうか、そしてどのフィールドがRailsで変更されているのか確認できますか?レコード/オブジェクトがRailsで汚れているかどうかを確認する

は、私は人のモデルと人は名前と年齢と呼ばれる性質を持っていると仮定します。デシベルでは、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] 

答えて

8

具体的には、changedを参照してください。

+0

zam ok thanks = D – denniss

関連する問題