2009-09-26 57 views
1

我需要一个通用克隆解决方案来深入克隆其所有实例变量在Ruby中的模块。我无法真正使用.clone方法,因为它不适用于activerecord对象(不会复制id字段)。通用对象克隆解决方案

我也看到一个解决方法是使用marshal dump +编组加载,但它不适用于模块和单例对象。有没有人知道任何解决方案来深入克隆模块?或者,也许你有我的真正问题的另一种解决方案。

我有一个设置了实例变量的模块,我需要将它克隆到另一个模块,修改克隆对象中的对象,然后再次克隆第一个模块,而无需更改第二个模块。

回答

0

对于ActiveRecord对象,您可以使用dup而不是clone,但dup不会复制单例方法(在对象上定义)+它将冻结状态更改为受感染的方法。

至于Rails,你还有用于ActiveRecord克隆的Deep cloning插件。