Cópia profunda de matrizes em Ruby
Eu queria colocar um objeto em produção e fazer uma réplica exata (copiar sobre seu conteúdo) para outro objeto do mesmo tipo. Eu tentei fazer isso de três maneiras a partir do console ruby, que nenhum deles funcionou:
Digamos que você tenha ott
como o primeiro objeto que você deseja copiar ett2
como o objeto de réplica. A primeira abordagem que tentei é clonar a matriz
tt2.patients = tt.urls.patients
tt2.doctors = tt.segments.doctors
tt2.hospitals = tt.pixels.hospitals
segunda abordagem que tentei é duplicar a matriz, que na verdade é a mesma que clonar a matriz:
tt2.patients = tt.patients.dup
tt2.doctors = tt.doctors.dup
tt2.hospitals = tt.hospitals.dup
terceira abordagem que tentei é impressionant
tt2.patients = Marshal.load(Marshal.dump(tt.patients))
tt2.doctors = Marshal.load(Marshal.dump(tt.doctors))
tt2.hospitals = Marshal.load(Marshal.dump(tt.hospitals))
Nenhuma das opções acima funciona para cópias profundas de uma matriz para outra. Depois de experimentar cada abordagem individualmente acima, todo o conteúdo do primeiro objeto tt
) são anulados (pacientes, médicos e hospitais se foram). Você tem outras idéias para copiar o conteúdo de um objeto para outro? Obrigado