Я хотел получить объект на производстве и сделать точную копию (скопировать ее содержимое) на другой объект того же типа. Я попытался сделать это тремя способами с консоли ruby, из которой никто из них не работал:
-
Скажем, у вас есть
tt
как первый объект, который вы хотите скопировать, иtt2
в качестве объекта реплики. Первый подход, который я пробовал, - клонирование массиваtt2.patients = tt.urls.patients tt2.doctors = tt.segments.doctors tt2.hospitals = tt.pixels.hospitals
-
Второй подход, который я пробовал, - это дублирование массива, который фактически совпадает с клонированием массива:
tt2.patients = tt.patients.dup tt2.doctors = tt.doctors.dup tt2.hospitals = tt.hospitals.dup
-
Третий подход, который я пробовал, - marhsalling.
tt2.patients = Marshal.load(Marshal.dump(tt.patients)) tt2.doctors = Marshal.load(Marshal.dump(tt.doctors)) tt2.hospitals = Marshal.load(Marshal.dump(tt.hospitals))
Ни одно из вышеперечисленных работ не предназначено для глубокого копирования из одного массива в другой. После каждого индивидуального подхода каждый элемент первого содержания (tt
) аннулируется (пациенты, врачи и больницы исчезли). Есть ли у вас какие-либо другие идеи по копированию содержимого одного объекта в другой? Спасибо.