Sai*_*ner 14 ruby arrays clone copy ruby-on-rails
我想在生产中获得一个对象并做一个精确的副本(复制其内容)到另一个相同类型的对象.我尝试从ruby控制台以3种方式执行此操作,但没有一个工作:
假设tt您将要复制的第一个对象tt2作为副本对象.我尝试的第一种方法是克隆数组
tt2.patients = tt.urls.patients
tt2.doctors = tt.segments.doctors
tt2.hospitals = tt.pixels.hospitals
Run Code Online (Sandbox Code Playgroud)我尝试的第二种方法是复制数组,这实际上与克隆数组相同:
tt2.patients = tt.patients.dup
tt2.doctors = tt.doctors.dup
tt2.hospitals = tt.hospitals.dup
Run Code Online (Sandbox Code Playgroud)我尝试的第三种方法是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))
Run Code Online (Sandbox Code Playgroud)以上都不适用于从一个阵列到另一个阵列的深度复制.在上面单独尝试每种方法后,第一个对象(tt)的所有内容都无效(患者,医生和医院都消失了).关于将一个对象的内容复制到另一个对象,您有什么其他想法吗?谢谢.
Tri*_*rip 19
简单!
@new_tt = tt2.clone
@new_tt.patients = tt2.patients.dup
@new_tt.doctors = tt2.doctors.dup
@new_tt.hospitals = tt2.hospitals.dup
@new_tt.save
Run Code Online (Sandbox Code Playgroud)