3

我正在使用“dup”克隆一个活动记录模型(称为项目)。它有几个协会;一个项目有很多步骤,步骤有很多图像和视频等。

我发现当我克隆一个项目时,它成功地创建了项目相应步骤、图像和视频的克隆。但是,图像和视频仍然具有原始步骤的 step_id,而不是新创建的步骤。有没有一种简单的方法可以将 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
4

1 回答 1

3

在处理嵌套属性时,需要将格式更改如下:

@remix_project = @project.dup :include => {:steps => [:images, :videos]}
于 2013-07-10T15:02:09.333 回答