diff options
-rw-r--r-- | activerecord/lib/active_record/associations/builder/belongs_to.rb | 4 | ||||
-rw-r--r-- | activerecord/test/cases/timestamp_test.rb | 6 |
2 files changed, 8 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/associations/builder/belongs_to.rb b/activerecord/lib/active_record/associations/builder/belongs_to.rb index 579d7789bd..da7e8cda3a 100644 --- a/activerecord/lib/active_record/associations/builder/belongs_to.rb +++ b/activerecord/lib/active_record/associations/builder/belongs_to.rb @@ -68,11 +68,11 @@ module ActiveRecord::Associations::Builder def belongs_to_touch_after_save_or_destroy_for_#{name} record = #{name} - foreign_key_field = #{reflection.foreign_key} + foreign_key_field = #{reflection.foreign_key.inspect} if changed_attributes.key?(foreign_key_field) reflection_klass = #{reflection.klass} old_foreign_id = changed_attributes[foreign_key_field] - old_record = reflection_klass.where(foreign_key_field.to_sym => old_foreign_id).first + old_record = reflection_klass.where(foreign_key_field => old_foreign_id).first if old_record old_record.touch #{options[:touch].inspect if options[:touch] != true} end diff --git a/activerecord/test/cases/timestamp_test.rb b/activerecord/test/cases/timestamp_test.rb index 0c13bb946a..f42ecbb340 100644 --- a/activerecord/test/cases/timestamp_test.rb +++ b/activerecord/test/cases/timestamp_test.rb @@ -192,6 +192,12 @@ class TimestampTest < ActiveRecord::TestCase old_pet.update_columns(updated_at: time) new_pet.update_columns(updated_at: time) + old_pet.reload + new_pet.reload + + assert_equal time, new_pet.updated_at + assert_equal time, old_pet.updated_at + toy1.pet = new_pet toy1.save! |