小编bao*_*ist的帖子

成功 Repo.update 后 Ecto 重新加载所属关联

将params 中给定的关联child从 from更改parent_aparent_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)

更新后检索新关联的父记录的正确方法是什么?

elixir ecto phoenix-framework

8
推荐指数
2
解决办法
2574
查看次数

标签 统计

ecto ×1

elixir ×1

phoenix-framework ×1