mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Merge pull request #9853 from wangjohn/adding_bang_to_raise_method
Adding a bang to method name of raise_on_type_mismatch.
This commit is contained in:
commit
ecfdc842a5
6 changed files with 8 additions and 8 deletions
|
@ -203,7 +203,7 @@ module ActiveRecord
|
||||||
# Raises ActiveRecord::AssociationTypeMismatch unless +record+ is of
|
# Raises ActiveRecord::AssociationTypeMismatch unless +record+ is of
|
||||||
# the kind of the class of the associated objects. Meant to be used as
|
# the kind of the class of the associated objects. Meant to be used as
|
||||||
# a sanity check when you are about to assign an associated record.
|
# a sanity check when you are about to assign an associated record.
|
||||||
def raise_on_type_mismatch(record)
|
def raise_on_type_mismatch!(record)
|
||||||
unless record.is_a?(reflection.klass) || record.is_a?(reflection.class_name.constantize)
|
unless record.is_a?(reflection.klass) || record.is_a?(reflection.class_name.constantize)
|
||||||
message = "#{reflection.class_name}(##{reflection.klass.object_id}) expected, got #{record.class}(##{record.class.object_id})"
|
message = "#{reflection.class_name}(##{reflection.klass.object_id}) expected, got #{record.class}(##{record.class.object_id})"
|
||||||
raise ActiveRecord::AssociationTypeMismatch, message
|
raise ActiveRecord::AssociationTypeMismatch, message
|
||||||
|
|
|
@ -8,7 +8,7 @@ module ActiveRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def replace(record)
|
def replace(record)
|
||||||
raise_on_type_mismatch(record) if record
|
raise_on_type_mismatch!(record) if record
|
||||||
|
|
||||||
update_counters(record)
|
update_counters(record)
|
||||||
replace_keys(record)
|
replace_keys(record)
|
||||||
|
|
|
@ -22,7 +22,7 @@ module ActiveRecord
|
||||||
reflection.polymorphic_inverse_of(record.class)
|
reflection.polymorphic_inverse_of(record.class)
|
||||||
end
|
end
|
||||||
|
|
||||||
def raise_on_type_mismatch(record)
|
def raise_on_type_mismatch!(record)
|
||||||
# A polymorphic association cannot have a type mismatch, by definition
|
# A polymorphic association cannot have a type mismatch, by definition
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -318,7 +318,7 @@ module ActiveRecord
|
||||||
# Replace this collection with +other_array+. This will perform a diff
|
# Replace this collection with +other_array+. This will perform a diff
|
||||||
# and delete/add only records that have changed.
|
# and delete/add only records that have changed.
|
||||||
def replace(other_array)
|
def replace(other_array)
|
||||||
other_array.each { |val| raise_on_type_mismatch(val) }
|
other_array.each { |val| raise_on_type_mismatch!(val) }
|
||||||
original_target = load_target.dup
|
original_target = load_target.dup
|
||||||
|
|
||||||
if owner.new_record?
|
if owner.new_record?
|
||||||
|
@ -465,7 +465,7 @@ module ActiveRecord
|
||||||
|
|
||||||
def delete_or_destroy(records, method)
|
def delete_or_destroy(records, method)
|
||||||
records = records.flatten
|
records = records.flatten
|
||||||
records.each { |record| raise_on_type_mismatch(record) }
|
records.each { |record| raise_on_type_mismatch!(record) }
|
||||||
existing_records = records.reject { |r| r.new_record? }
|
existing_records = records.reject { |r| r.new_record? }
|
||||||
|
|
||||||
if existing_records.empty?
|
if existing_records.empty?
|
||||||
|
@ -506,7 +506,7 @@ module ActiveRecord
|
||||||
result = true
|
result = true
|
||||||
|
|
||||||
records.flatten.each do |record|
|
records.flatten.each do |record|
|
||||||
raise_on_type_mismatch(record)
|
raise_on_type_mismatch!(record)
|
||||||
add_to_target(record) do |rec|
|
add_to_target(record) do |rec|
|
||||||
result &&= insert_record(rec) unless owner.new_record?
|
result &&= insert_record(rec) unless owner.new_record?
|
||||||
end
|
end
|
||||||
|
|
|
@ -29,7 +29,7 @@ module ActiveRecord
|
||||||
def concat(*records)
|
def concat(*records)
|
||||||
unless owner.new_record?
|
unless owner.new_record?
|
||||||
records.flatten.each do |record|
|
records.flatten.each do |record|
|
||||||
raise_on_type_mismatch(record)
|
raise_on_type_mismatch!(record)
|
||||||
record.save! if record.new_record?
|
record.save! if record.new_record?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -22,7 +22,7 @@ module ActiveRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def replace(record, save = true)
|
def replace(record, save = true)
|
||||||
raise_on_type_mismatch(record) if record
|
raise_on_type_mismatch!(record) if record
|
||||||
load_target
|
load_target
|
||||||
|
|
||||||
# If target and record are nil, or target is equal to record,
|
# If target and record are nil, or target is equal to record,
|
||||||
|
|
Loading…
Reference in a new issue