diff options
Diffstat (limited to 'activemodel')
-rw-r--r-- | activemodel/CHANGELOG.md | 5 | ||||
-rw-r--r-- | activemodel/lib/active_model/dirty.rb | 10 |
2 files changed, 10 insertions, 5 deletions
diff --git a/activemodel/CHANGELOG.md b/activemodel/CHANGELOG.md index 890e99415f..8bae40d59b 100644 --- a/activemodel/CHANGELOG.md +++ b/activemodel/CHANGELOG.md @@ -1,3 +1,8 @@ +* Added `rollback_changes` method to `ActiveModel::Dirty` API to roolback all the + changed values to the previous data. + + *Igor G.* + * Allow proc and symbol as values for `only_integer` of `NumericalityValidator` *Robin Mehner* diff --git a/activemodel/lib/active_model/dirty.rb b/activemodel/lib/active_model/dirty.rb index 95a3c00d0b..e5bfee2291 100644 --- a/activemodel/lib/active_model/dirty.rb +++ b/activemodel/lib/active_model/dirty.rb @@ -179,19 +179,19 @@ module ActiveModel private # Removes current changes and makes them accessible through +previous_changes+. - def changes_applied + def changes_applied # :doc: @previously_changed = changes @changed_attributes = ActiveSupport::HashWithIndifferentAccess.new end - # Removes all dirty data: current changes and previous changes - def reset_changes + # Removes all dirty data: current changes and previous changes. + def reset_changes # :doc: @previously_changed = ActiveSupport::HashWithIndifferentAccess.new @changed_attributes = ActiveSupport::HashWithIndifferentAccess.new end - # Restore all previous data - def rollback_changes #:doc: + # Restore all previous data. + def rollback_changes # :doc: changed_attributes.each_key { |attr| reset_attribute! attr } end |