You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

26 lines
645 B

class User < ApplicationRecord
has_many :work_experiences
has_many :skills
has_many :education_entries
has_many :cover_letters
def clone!(label:)
self.class.transaction do
cloned_user = dup
cloned_user.label = label
cloned_user.save!
self.class.reflect_on_all_associations(:has_many).each do |association|
next if association.options[:through]
public_send(association.name).find_each do |record|
cloned_record = record.dup
cloned_record[association.foreign_key] = cloned_user.id
cloned_record.save!
end
end
cloned_user
end
end
end