Я хотел получить объект на производстве и сделать точную копию (скопировать его содержимое) на другой объект того же типа. Я попытался сделать это тремя способами из консоли 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
Третий подход, который я попробовал, - маршаллинг.
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
) обнуляется (пациенты, врачи и больницы исчезли). Есть ли у вас другие идеи по копированию содержимого одного объекта в другой? Спасибо.