「dup」を使用して、アクティブなレコード モデル (プロジェクトと呼ばれる) を複製しています。いくつかの関連付けがあります。プロジェクトには多くのステップがあり、ステップには多くの画像やビデオがあります。
プロジェクトのクローンを作成すると、プロジェクトの対応するステップ、画像、およびビデオのクローンが正常に作成されることがわかりました。ただし、画像とビデオには、新しく作成されたステップではなく、元のステップの step_ids がまだ含まれています。新しく作成されたレコードに ID を割り当てる簡単な方法はありますか?
deep_cloneable gem を使用しています。
これが私のクローンの作成方法です:
# Create remix
def remix
@project = Project.find(params[:id])
@remix_project = @project.dup :include => [:steps, :images, :videos]
@remix_project.remix = @project.id
@remix_project.title = @project.title+" - "+current_user.username+" Remix"
respond_to do |format|
if @remix_project.save
format.html { }
end
end
end