Tag: 复制

Rails克隆复制或复制

我有一个嵌套的表单,一旦我保存,我希望能够单击显示页面上的链接来复制或克隆该表单并打开一个新表单。 从那里我应该能够进行编辑(比如新的id)并保存为新记录。 我见过一些像deep_cloneable gem这样的例子,但我不知道如何实现它。 我认为这应该很简单,但我只是不明白把东西放在控制器和show视图中的位置。

如何使用Paperclip复制文件

有没有人知道用Paperclip使用S3存储复制文件的方法? 在我尝试自己编写之前,我只是想确保没有办法做到这一点。 谢谢

为什么Ruby中没有深层复制方法?

我正在研究技术图纸(svg / ruby​​)的解决方案。 我想操纵矩形,并add! 这个类中的方法: class Rect def add!(delta) @x1+=delta … # and so on self end end 我还需要一个返回Rect的add方法,但不需要操作self : def add(delta) r=self.dup/clone/”copy” # <– not realy the 3 and no quotes, just in text here r.add! delta end dup和clone不做我的事情,但是: def copy; Marshal.load(Marshal.dump(self)); end 确实。 为什么普通Ruby中不存在这样的基本function? 请不要告诉我,我可以反向add和add! ,让add完成工作,并add! 叫它。

Ruby中数组的深层副本

我想在生产中获得一个对象并做一个精确的副本(复制其内容)到另一个相同类型的对象。 我尝试从ruby控制台以3种方式执行此操作,但它们都没有工作: 假设您将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)) 以上都不适用于从一个arrays到另一个arrays的深度复制。 在上面单独尝试每种方法之后,第一个对象( tt )的所有内容都无效(患者,医生和医院都消失了)。 您是否有任何其他想法将一个对象的内容复制到另一个对象? 谢谢。

复制Ruby字符串数组

arr = [“red”,”green”,”yellow”] arr2 = arr.clone arr2[0].replace(“blue”) puts arr.inspect puts arr2.inspect 生产: [“blue”, “green”, “yellow”] [“blue”, “green”, “yellow”] 无论如何都要做一个字符串数组的深层副本,除了使用Marshal,因为我知道这是一个黑客。 我可以: arr2 = [] arr.each do |e| arr2 << e.clone end 但它似乎并不优雅或高效。 谢谢

对象分配和指针

我对Ruby中的对象赋值和指针有点困惑,并编写了这个代码片段来测试我的假设。 class Foo attr_accessor :one, :two def initialize(one, two) @one = one @two = two end end bar = Foo.new(1, 2) beans = bar puts bar puts beans beans.one = 2 puts bar puts beans puts beans.one puts bar.one 我曾经假设当我将bar分配给bean时,它会创建一个对象的副本,而修改一个不会影响另一个。 唉,输出显示不然。 ^_^[jergason:~]$ ruby test.rb # # # # 2 2 我相信数字与对象的地址有关,而且对于bean和bar都是相同的,当我修改bean时,bar也会被改变,这不是我所期望的。 看来我只是创建一个指向对象的指针,而不是它的副本。 在分配时复制对象而不是创建指针需要做什么? 使用Array类进行的测试也显示了一些奇怪的行为。 foo […]