3

「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
4

1 に答える 1

3

ネストされた属性を扱う場合は、次のようにフォーマットを変更する必要があります。

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