From c53287b2370af2b011cdc4c583a50fbcd6fd88ed Mon Sep 17 00:00:00 2001 From: Mike Busch Date: Mon, 23 Jan 2017 12:09:14 -0500 Subject: save attributes changed by callbacks after update_attribute update_attribute previously stopped execution, before saving and before running callbacks, if the record's attributes hadn't changed. [The documentation](http://api.rubyonrails.org/classes/ActiveRecord/Persistence.html#method-i-update_attribute) says that "Callbacks are invoked", which was not happening if the persisted attributes hadn't changed. --- activerecord/test/cases/persistence_test.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'activerecord/test/cases') diff --git a/activerecord/test/cases/persistence_test.rb b/activerecord/test/cases/persistence_test.rb index 07c4a17fb1..0fa8ea212f 100644 --- a/activerecord/test/cases/persistence_test.rb +++ b/activerecord/test/cases/persistence_test.rb @@ -633,6 +633,9 @@ class PersistenceTest < ActiveRecord::TestCase Topic.find(1).update_attribute(:approved, false) assert !Topic.find(1).approved? + + Topic.find(1).update_attribute(:change_approved_before_save, true) + assert Topic.find(1).approved? end def test_update_attribute_for_readonly_attribute -- cgit v1.2.3