我想复制ActiveRecord对象,在过程中更改单个字段(除了id)。最简单的方法是什么
我意识到我可以创建一个新记录,然后在每个字段上迭代,一个字段一个字段地复制数据——但我想一定有一种更简单的方法可以做到这一点
也许是这样的:
new\u record=record.copy(:id)
要获取副本,请使用克隆(或dup for rails 3.1+)方法:
#rails<;3.1
新记录=旧记录。克隆
#钢轨>;=3.1
新记录=旧记录.dup
然后您可以更改所需的任何字段
ActiveRecord覆盖内置对象#克隆,为您提供一个具有未分配ID的新(未保存到DB)记录。
请注意,它不会复制关联,因此如果需要,您必须手动执行此操作
Rails 3.1克隆是浅拷贝,请改用dup