deep_clone gem 不重复 created_at

deep_clone gem not duplicating created_at

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

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

@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

似乎用 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。

从这个 post https://github.com/moiristo/deep_cloneable/issues/54

得到这个答案