aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--activerecord/lib/active_record/associations/belongs_to_association.rb11
1 files changed, 5 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/associations/belongs_to_association.rb b/activerecord/lib/active_record/associations/belongs_to_association.rb
index 7d96f0c372..7dc817fc66 100644
--- a/activerecord/lib/active_record/associations/belongs_to_association.rb
+++ b/activerecord/lib/active_record/associations/belongs_to_association.rb
@@ -8,17 +8,16 @@ module ActiveRecord
end
def replace(record)
- raise_on_type_mismatch!(record) if record
-
- update_counters(record)
if record
+ raise_on_type_mismatch!(record)
+ update_counters(record)
replace_keys(record)
+ set_inverse_instance(record)
+ @updated = true
else
+ update_counters(record)
remove_keys
end
- set_inverse_instance(record) if record
-
- @updated = true if record
self.target = record
end