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']