def merge(user1, user2, preferred_email) user1.strip! user2.strip! raise "Email cannot be the same" if (user1 == user2) u = User.unscoped.find_by_email(user1) u2 = User.unscoped.find_by_email(user2) raise "User1 not found" if u.nil? raise "User2 not found" if u2.nil? if u.alternate_ids.empty? primary = u2 victim = u else primary = u victim = u2 end primary.takeover!(victim) primary.update_attribute(:email, preferred_email) primary.employments.collect { |emp| emp.allstate_network_ids.collect(&:network_id) }.flatten end