diff options
author | Ryan Bates <ryan@railscasts.com> | 2008-05-21 08:27:20 -0700 |
---|---|---|
committer | Pratik Naik <pratiknaik@gmail.com> | 2008-05-21 20:40:52 +0100 |
commit | 262d23d763c05bbe5f433a99cb9f02e48a8cdd4a (patch) | |
tree | 3e4c227cabb899746db0d6f23beb15ac7b10e520 /activerecord/lib | |
parent | 6e3521e6134e7f0d0b27834266e41354290c4e7e (diff) | |
download | rails-262d23d763c05bbe5f433a99cb9f02e48a8cdd4a.tar.gz rails-262d23d763c05bbe5f433a99cb9f02e48a8cdd4a.tar.bz2 rails-262d23d763c05bbe5f433a99cb9f02e48a8cdd4a.zip |
ActiveRecord::Base#reload should clear dirty attributes. [#231 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/dirty.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/dirty.rb b/activerecord/lib/active_record/dirty.rb index 49f1204fa1..8fdc763292 100644 --- a/activerecord/lib/active_record/dirty.rb +++ b/activerecord/lib/active_record/dirty.rb @@ -40,6 +40,7 @@ module ActiveRecord base.alias_method_chain :save, :dirty base.alias_method_chain :save!, :dirty base.alias_method_chain :update, :dirty + base.alias_method_chain :reload, :dirty base.superclass_delegating_accessor :partial_updates base.partial_updates = false @@ -84,6 +85,13 @@ module ActiveRecord status end + # <tt>reload</tt> the record and clears changed attributes. + def reload_with_dirty(*args) #:nodoc: + record = reload_without_dirty(*args) + changed_attributes.clear + record + end + private # Map of change attr => original value. def changed_attributes |