问题描述
我有一个功能可以在Rails应用程序中克隆记录。除了表单数据外,我还要将附加到源对象的所有活动存储文件上载/复制/附加到新对象。有关如何执行此操作的任何想法?这是我的动作:
def copy
@source = Compitem.find(params[:id])
@compitem = @source.dup
render 'new'
end
class Compitem < ApplicationRecord
belongs_to :user
has_many_attached :uploads,dependent: :destroy
end
解决方法
我最终使用https://github.com/moiristo/deep_cloneable gem来使它工作。最终动作:
def copy
@source = Compitem.find(params[:id])
@compitem = @source.deep_clone(include: :uploads_blobs)
@compitem.save
render 'new'
end