Rails如何将所有活动存储附件复制到新对象?

问题描述

我有一个功能可以在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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...