module Dirty

Ruby on Rails 2.2.3

Since v2.2.3 Last seen in v2.3.18

Available in: v2.2.3 v2.3.18

Track unsaved attribute changes.

A newly instantiated object is unchanged:

person = Person.find_by_name('uncle bob')
person.changed?       # => false

Change the name:

person.name = 'Bob'
person.changed?       # => true
person.name_changed?  # => true
person.name_was       # => 'uncle bob'
person.name_change    # => ['uncle bob', 'Bob']
person.name = 'Bill'
person.name_change    # => ['uncle bob', 'Bill']

Save the changes:

person.save
person.changed?       # => false
person.name_changed?  # => false

Assigning the same value leaves the attribute unchanged:

person.name = 'Bill'
person.name_changed?  # => false
person.name_change    # => nil

Which attributes have changed?

person.name = 'bob'
person.changed        # => ['name']
person.changes        # => { 'name' => ['Bill', 'bob'] }

Before modifying an attribute in-place:

person.name_will_change!
person.name << 'by'
person.name_change    # => ['uncle bob', 'uncle bobby']

Namespace

Modules

Constants

Methods (defined here)

Private methods

(8) Implementation detail — not part of the public API.

Used by

Included by (1)

Type at least 2 characters to search.

↑↓ navigate · open · esc close