2

我正在复制一个 rails 对象,除了created_at对象的值之外,它的所有细节都可以很好地复制。我正在使用 deep_clone gem 进行深度复制。

这是代码。我想要 raw_materials 和 costing_items 的 created_at 值。

@costing = @old_costing.deep_clone :include => [{style: :images}, {raw_materials: :costing_items} , :other_cost_fixeds, :other_costs, :exchange_rates ], :use_dictionary => true do |original, kopy|
                kopy.remote_picture_url = original.picture_url if kopy.is_a?(Image)
            end
4

1 回答 1

0

看起来很简单,deep_clone可以在 do 块中完成,所以如果我们这样做

@costing = @old_costing.deep_clone :include => [{style: :images}, {raw_materials: :costing_items} , :other_cost_fixeds, :other_costs, :exchange_rates ], :use_dictionary => true do |original, kopy|
                kopy.remote_picture_url = original.picture_url if kopy.is_a?(Image)
kopy.created_at = original.created_at
            end

然后它将在所有嵌套属性上添加 created_at 。

从这篇文章中得到了这个答案https://github.com/moiristo/deep_cloneable/issues/54

于 2016-01-10T17:03:48.923 回答