lib/copyable/declarations/associations.rb in copyable-0.1.1 vs lib/copyable/declarations/associations.rb in copyable-0.1.2
- old
+ new
@@ -6,10 +6,11 @@
# this is the algorithm for copying associated records according to the
# instructions given in the copyable declaration
def execute(association_list, original_model, new_model, skip_validations, skip_associations)
@skip_validations = skip_validations
+ @skip_associations = skip_associations
association_list.each do |assoc_name, advice|
association = original_model.class.reflections[assoc_name.to_sym]
check_advice(association, advice, original_model)
unless advice == :do_not_copy || skip_associations.include?(assoc_name.to_sym)
copy_association(association, original_model, new_model)
@@ -76,10 +77,11 @@
if SingleCopyEnforcer.can_copy?(original_record)
if original_record.respond_to? :create_copy!
copied_record = original_record.create_copy!(
override: { association.foreign_key => parent_model.id },
__called_recursively: true,
- skip_validations: @skip_validations)
+ skip_validations: @skip_validations,
+ skip_associations: @skip_associations)
else
message = "Could not copy #{parent_model.class.name}#id:#{parent_model.id} "
message << "because #{original_record.class.name} does not have a copyable declaration."
raise Copyable::CopyableError.new(message)
end