1

我正在使用deep_cloneable gem。我可以对关联进行深度复制,也可以从父对象中排除属性。但是有没有办法甚至从关联中排除属性?

4

1 回答 1

3

看起来您可以从父级或关联或两者中明确排除属性。这是直接来自文档的示例:

pirate.dup :include => :parrot, :except => [:name, { :parrot => [:name] }]

对于您的情况,您需要像这样省略父级的 :name :

pirate.dup :include => :parrot, :except => [{ :parrot => [:name] }]

顺便说一句,您还可以仅包含关联的属性,如果您想使用白名单技术,这可以很好地满足您的需求。这是直接来自文档的示例:

pirate.dup :include => :parrot, :only => [:name, { :parrot => [:name] }]

您可能想要为白名单做的是:

pirate.dup :include => :parrot, :only => [{ :parrot => [:name] }]

希望这可以帮助!

于 2014-03-04T16:24:33.350 回答