2010-07-26 133 views
0

我有一个标签是“保存&副本”的按钮,用于保存当前对象(@student)并将其重定向回新操作,这些新操作包含所有先前的对象属性。我已经stucked如何填充以前的值。克隆一个对象

ROR是否提供任何此类方法来制作对象的克隆。

+1

你试过了@@ student.clone吗? – mckeed 2010-07-26 16:13:45

回答

2

Ruby on Rails提供了clone方法,该方法创建对象的浅表副本。在你的情况,你可以使用它像:

@previous_student = @student.clone

clone方法的文档指出:

返回记录的克隆是 尚未分配一个ID但并 被视为新纪录。请注意, 这是一个“浅”克隆:它仅复制 对象的属性,而不复制它的 关联。 “深”克隆的范围是特定于应用程序的,因此根据其需要应用于 实施。

http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M001848

如文档中说明,你也许应该重写clone方法,实现自己的克隆,如果在Student模型中使用的关联。

干杯