aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/associations/builder/belongs_to.rb4
-rw-r--r--activerecord/test/cases/timestamp_test.rb6
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!