2

我很生气,Paperclip因为我需要克隆一个 ActiveRecord 对象(模型名称是Product)及其附件,但是克隆“窃取”了原始对象附件

这就是我的products_controller.rb

original = Product.find_with_account(params[:id], @current_account)
clone_object = original.dup
clone_object.name = "#{original.name.split('-').first}-#{random_string}"
clone_object.product_photos = original.product_photos
clone_object.save

(在中间我还添加了一个哈希以避免我的产品之间的命名冲突)。

换句话说,我想拥有:

ORIGINAL -> [Image1, Image2 ...]

...克隆...

ORIGINAL -> [Image1, Image2 ...]
CLONED -> [Image1Clone, Image2Clone ...]

你能指出我正确的方向吗?

4

1 回答 1

2

dup不会复制关联的对象。您必须编写自己的克隆方法来复制原始附件并将它们与复制的产品相关联。

于 2013-01-26T15:40:07.700 回答