Permalink
Browse files

Prevented belongs_to: touch propagating up if there are no changes be…

…ing saved
  • Loading branch information...
1 parent 5508a3e commit 713fc39d93601043e027d5cd9ebcfa08064f9417 @brocktimus brocktimus committed May 5, 2014
@@ -1,3 +1,11 @@
+* Change belongs_to touch to be consistent with timestamp updates
+
+ If a model is set up with a belongs_to: touch relatinoship the parent
+ record will only be touched if the record was modified. This makes it
+ consistent with timestamp updating on the record itself.
+
+ *Brock Trappitt*
+
* Fixed the inferred table name of a HABTM auxiliar table inside a schema.
Fixes #14824
@@ -103,7 +103,7 @@ def self.add_touch_callbacks(model, reflection)
BelongsTo.touch_record(record, foreign_key, n, touch)
}
- model.after_save callback
+ model.after_save callback, if: :changed?
model.after_touch callback
model.after_destroy callback
end
@@ -369,6 +369,13 @@ def test_belongs_to_with_touch_option_on_update
assert_queries(2) { line_item.update amount: 10 }
end
+ def test_belongs_to_with_touch_option_on_empty_update
+ line_item = LineItem.create!
+ Invoice.create!(line_items: [line_item])
+
+ assert_queries(0) { line_item.save }
+ end
+
def test_belongs_to_with_touch_option_on_destroy
line_item = LineItem.create!
Invoice.create!(line_items: [line_item])

0 comments on commit 713fc39

Please sign in to comment.