diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-05-13 23:48:36 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-13 23:48:36 +0900 |
commit | 3b2ba908bad6962be8b1b0c368a97721dc864eb4 (patch) | |
tree | ed378d749fa4a075f5e380b1b05a82ffe4697fb8 /activerecord/lib/active_record/attribute_methods | |
parent | 9854efd5ac6a05555cc73b21c98c37252eaef0a6 (diff) | |
parent | dcb825902d79d0f6baba956f7c6ec5767611353e (diff) | |
download | rails-3b2ba908bad6962be8b1b0c368a97721dc864eb4.tar.gz rails-3b2ba908bad6962be8b1b0c368a97721dc864eb4.tar.bz2 rails-3b2ba908bad6962be8b1b0c368a97721dc864eb4.zip |
Merge pull request #36271 from kamipo/dont_track_implicit_touch_mutation
Don't track implicit `touch` mutation
Diffstat (limited to 'activerecord/lib/active_record/attribute_methods')
-rw-r--r-- | activerecord/lib/active_record/attribute_methods/dirty.rb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/attribute_methods/dirty.rb b/activerecord/lib/active_record/attribute_methods/dirty.rb index a43ebdf60d..45341765c1 100644 --- a/activerecord/lib/active_record/attribute_methods/dirty.rb +++ b/activerecord/lib/active_record/attribute_methods/dirty.rb @@ -177,6 +177,11 @@ module ActiveRecord affected_rows = super + if @_skip_dirty_tracking ||= false + clear_attribute_changes(@_touch_attr_names) + return affected_rows + end + changes = {} @attributes.keys.each do |attr_name| next if @_touch_attr_names.include?(attr_name) @@ -193,7 +198,7 @@ module ActiveRecord affected_rows ensure - @_touch_attr_names = nil + @_touch_attr_names, @_skip_dirty_tracking = nil, nil end def _update_record(attribute_names = attribute_names_for_partial_writes) |