我想使用deep_dup复制父对象和子对象,并使用rails 5将其另存为新记录。我一直在寻找一些示例代码来在我的项目中实现它,但到目前为止我什么都找不到。
到目前为止,我已经做到了,但是没有用。
def copy
@product = Product.find(params[:id])
@newproduct = @product.clone :include => :productlines
success = @newproduct.save
if success && @newproduct.errors.empty?
redirect_to (edit_product_path(@newproduct))
flash[:danger] = "Procut copied"
else
flash[:danger] = "Procut cannot be copied"
end
end
<%= link_to "Clone", copy_product_path(@product), :method => :put %>
有可用的宝石deep_cloneable,但我不了解该文档,不知道如何使用它。
任何人都可以向我展示一种在我的项目中实施此方法的方法吗?
如果有人可以提供帮助,我们将非常感谢。
答案 0 :(得分:0)
您似乎需要使用deep_clone方法来包括产品线关联(还要确保它不应该是product_lines
)。
@new_product = @product.deep_clone include: :productlines