mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Specify insert_record with NotImplementedError in AssociationCollection, to indicate that subclasses should implement it. Also add save_record to reduce duplication.
This commit is contained in:
committed by
Aaron Patterson
parent
880f8419c4
commit
379c02267b
@@ -476,6 +476,17 @@ module ActiveRecord
|
||||
end
|
||||
|
||||
private
|
||||
# Do the relevant stuff to insert the given record into the association collection. The
|
||||
# force param specifies whether or not an exception should be raised on failure. The
|
||||
# validate param specifies whether validation should be performed (if force is false).
|
||||
def insert_record(record, force = true, validate = true)
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
def save_record(record, force, validate)
|
||||
force ? record.save! : record.save(:validate => validate)
|
||||
end
|
||||
|
||||
def create_record(attrs)
|
||||
attrs.update(@reflection.options[:conditions]) if @reflection.options[:conditions].is_a?(Hash)
|
||||
ensure_owner_is_persisted!
|
||||
|
||||
@@ -35,11 +35,7 @@ module ActiveRecord
|
||||
|
||||
def insert_record(record, force = true, validate = true)
|
||||
if record.new_record?
|
||||
if force
|
||||
record.save!
|
||||
else
|
||||
return false unless record.save(:validate => validate)
|
||||
end
|
||||
return false unless save_record(record, force, validate)
|
||||
end
|
||||
|
||||
if @reflection.options[:insert_sql]
|
||||
|
||||
@@ -55,7 +55,7 @@ module ActiveRecord
|
||||
|
||||
def insert_record(record, force = false, validate = true)
|
||||
set_belongs_to_association_for(record)
|
||||
force ? record.save! : record.save(:validate => validate)
|
||||
save_record(record, force, validate)
|
||||
end
|
||||
|
||||
# Deletes the records according to the <tt>:dependent</tt> option.
|
||||
|
||||
@@ -60,11 +60,7 @@ module ActiveRecord
|
||||
|
||||
def insert_record(record, force = true, validate = true)
|
||||
if record.new_record?
|
||||
if force
|
||||
record.save!
|
||||
else
|
||||
return false unless record.save(:validate => validate)
|
||||
end
|
||||
return false unless save_record(record, force, validate)
|
||||
end
|
||||
|
||||
through_association = @owner.send(@reflection.through_reflection.name)
|
||||
|
||||
Reference in New Issue
Block a user