diff --git a/activerecord/lib/active_record/associations/belongs_to_association.rb b/activerecord/lib/active_record/associations/belongs_to_association.rb index 7d96f0c3729d52205d4abad89148a2aaccfb1e3d..7dc817fc66b1725fe0a9ef715e9be4ee214792f2 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 @@ def handle_dependency 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