method
replace
replace(record)
public
Hide source
# File activerecord/lib/active_record/associations/belongs_to_association.rb, line 12 def replace(record) counter_cache_name = @reflection.counter_cache_column if record.nil? if counter_cache_name && !@owner.new_record? @reflection.klass.decrement_counter(counter_cache_name, previous_record_id) if @owner[@reflection.primary_key_name] end @target = @owner[@reflection.primary_key_name] = nil else raise_on_type_mismatch(record) if counter_cache_name && !@owner.new_record? @reflection.klass.increment_counter(counter_cache_name, record.id) @reflection.klass.decrement_counter(counter_cache_name, @owner[@reflection.primary_key_name]) if @owner[@reflection.primary_key_name] end @target = (AssociationProxy === record ? record.target : record) @owner[@reflection.primary_key_name] = record_id(record) unless record.new_record? @updated = true end set_inverse_instance(record, @owner) loaded record end