gpt4 book ai didi

ruby-on-rails - Ruby 中数组的深拷贝

转载 作者:数据小太阳 更新时间:2023-10-29 06:38:57 26 4
gpt4 key购买 nike

我想在生产环境中获取一个对象,并将其精确复制(复制其内容)到另一个相同类型的对象。我尝试从 ruby​​ 控制台以 3 种方式执行此操作,但均无效:

  1. 假设您将 tt 作为要复制的第一个对象,并将 tt2 作为副本对象。我尝试的第一种方法是克隆数组

    tt2.patients  = tt.urls.patients
    tt2.doctors = tt.segments.doctors
    tt2.hospitals = tt.pixels.hospitals
  2. 我尝试的第二种方法是复制数组,这实际上与克隆数组相同:

    tt2.patients  = tt.patients.dup
    tt2.doctors = tt.doctors.dup
    tt2.hospitals = tt.hospitals.dup
  3. 我尝试的第三种方法是编码。

    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) 的所有内容都被取消了(患者、医生和医院都消失了)。关于将一个对象的内容复制到另一个对象,您还有其他想法吗?谢谢。

最佳答案

简单!

@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

关于ruby-on-rails - Ruby 中数组的深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com