Railsの新機能:ダーティオブジェクト

これで、オブジェクト(ActiveRecord)が変更されたかどうか、および正確に変更されたものを確認できます。



article = Article.find(:最初)

article.changed? #=> false









個々の属性の変更を追跡します。



#attr_name_changed? アクセサー

article.title

#=>「タイトル」

article.title = "新しいタイトル"

article.title_changed?

#=> true





古い属性値を取得します。



#attr_name_wasアクセサー

article.title_was

#=>「タイトル」





古い値と新しい値を取得します。



#attr_name_changeアクセサー

article.title_change

#=> [「タイトル」、「新しいタイトル」]





変更された属性の配列を取得します。



article.changed#=> ['title']



変更のハッシュを取得します。



article.changes

#=> {'title' => [“ Title”、“ New Title”]}





オブジェクトの動作は次のとおりです。



article.changed?

#=> true

article.save

#=> true

article.changed?

#=> false





ただし、attribute =()以外の属性値を変更する場合、これについてモデルに警告する必要があります。



article = Article.find(:最初)

article.title_will_change!

article.title.upcase!

article.title_change#=> ['Title'、 'TITLE']



All Articles