在Rails中复制模型实例

use*_*154 40 activerecord ruby-on-rails

我有一个Foo属性模型id, name, location.我有一个例子Foo:

f1 = Foo.new
f1.name = "Bar"
f1.location = "Foo York"
f1.save
Run Code Online (Sandbox Code Playgroud)

我想复制f1并从该副本创建另一个Foo模型实例,但我不想f1.id继续f2.id(我不想明确指定它,我希望数据库处理它,因为它应该) .

除了手动复制每个属性之外,还有一种简单的方法吗?任何内置函数或写一个是最好的路线?

谢谢

myd*_*rms 74

根据以下问题,如果您使用Rails> = 3.1,则可以使用object.dup:

复制activerecord记录的最简单方法是什么?


Vit*_*ner 61

这就是ActiveRecord :: Base#clone方法的用途:

@bar = @foo.clone

@bar.save
Run Code Online (Sandbox Code Playgroud)

  • 现在使用@ foo.dup for rails 3.1和on.克隆复制id. (86认同)