diff --git a/activerecord/lib/active_record/persistence.rb b/activerecord/lib/active_record/persistence.rb index d492ac7f16dd5..fd3380a53c920 100644 --- a/activerecord/lib/active_record/persistence.rb +++ b/activerecord/lib/active_record/persistence.rb @@ -194,7 +194,7 @@ def update_column(name, value) raise ActiveRecordError, "#{name} is marked as readonly" if self.class.readonly_attributes.include?(name) raise ActiveRecordError, "can not update on a new record object" unless persisted? - updated_count = self.class.update_all({ name => value }, self.class.primary_key => id) == 1 + updated_count = self.class.update_all({ name => value }, self.class.primary_key => id) raw_write_attribute(name, value) diff --git a/activerecord/test/cases/persistence_test.rb b/activerecord/test/cases/persistence_test.rb index 66f884287dd9f..be164afe9fb8a 100644 --- a/activerecord/test/cases/persistence_test.rb +++ b/activerecord/test/cases/persistence_test.rb @@ -513,6 +513,12 @@ def test_update_column_changing_id assert_equal 123, topic.id end + def test_update_column_should_return_correct_value + developer = Developer.find(1) + return_value = developer.update_column(:salary, 80001) + assert_equal return_value, true + end + def test_update_attributes topic = Topic.find(1) assert !topic.approved?