小编Sai*_*ner的帖子

Ruby中数组的深层副本

我想在生产中获得一个对象并做一个精确的副本(复制其内容)到另一个相同类型的对象.我尝试从ruby控制台以3种方式执行此操作,但没有一个工作:

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

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

    tt2.patients  = tt.patients.dup
    tt2.doctors   = tt.doctors.dup
    tt2.hospitals = tt.hospitals.dup
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我尝试的第三种方法是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)的所有内容都无效(患者,医生和医院都消失了).关于将一个对象的内容复制到另一个对象,您有什么其他想法吗?谢谢.

ruby arrays clone copy ruby-on-rails

14
推荐指数
2
解决办法
2万
查看次数

如何在控制器中的实例变量可用于Rails中的视图

我已经做了一段时间的Rails并且刚刚开始深入研究Rails从中获取力量的Ruby元编程.我真的无法想出这一个,它让我发疯.如何在控制器中的实例变量可用于Rails中的视图(与视图共享)?我知道它背后有一些元编程魔术,但我无法理解它.谢谢你的所有帮助.

ruby binding metaprogramming ruby-on-rails ruby-on-rails-3

6
推荐指数
1
解决办法
1816
查看次数