4
克隆Ecto模型/記錄的最簡單方法是什麼?我有一個有許多配料和嵌入式標籤的樣本食譜模型。克隆一個Ecto記錄。嵌入和相關記錄?
型號
defmodule App.Recipe do
use App.Web, :model
schema "recipes" do
field :name, :string
has_many :ingredients, App.Ingredient
embeds_many :labels, App.Label
end
克隆配方記錄 我如何可以克隆一個配方記錄,並插入一個新的配方記錄創建變更?
recipe = Repo.get(App.Recipe, 1)
recipe_changeset = Ecto.Changeset.change(recipe)
# ... Steps for cloning record with embeds?
new_recipe = Repo.insert(recipe_changeset)
克隆配方和成分,並指定新的配方ID配料
我如何克隆預裝的ingrediens配方記錄插入新成分的新配方記錄?
recipe = Repo.get(App.Recipe, 1)
|> Repo.preload(:ingredients)
recipe_changeset = Ecto.Changeset.change(recipe)
# ... Steps for cloning records?
new_recipe = Repo.insert(recipe_changeset)
你也想克隆所有的成分,並將他們的'recipe_id'設置爲新配方的ID,對吧? – Dogbert
是的,我想克隆所有成分並將新配方ID分配給它們。 – rodeinator