将params 中给定的关联child从 from更改parent_a为parent_bvia 会parent_id留下一个陈旧的record.parent对象。
例如(假设参数匹配%{child: %{id: '1', parent_id: '6'}})
# ...
child = Repo.get(Child, child_id)
|> preload([:parent])
changeset = Child.changeset(child, child_params)
case Repo.update(changeset) do
{:ok, child} ->
IO.puts child.parent_id # returns '6', or the new, changed `id`
IO.puts child.parent.id # returns '5', or the old id
# child.parent is stale
# ...
Run Code Online (Sandbox Code Playgroud)
更新后检索新关联的父记录的正确方法是什么?