【发布时间】:2021-09-29 22:23:30
【问题描述】:
我有一个具有has_many 关联的 Ecto 架构设置。我希望能够动态添加/删除关联,保持初始关联。
我尝试使用Ecto.Changeset.put_assoc/4,它在加载初始关联时有效,但是每个后续调用都会覆盖初始关联。
change_one = Changeset.put_assoc(changeset, :foo_assocs, [%{index: 1}])
...
foo_assocs: [
#Ecto.Changeset<
action: :insert,
changes: %{index: 1},
errors: [],
data: #Linker.CustomForms.FooAssoc<>,
valid?: true
>
]
...
如果我再次调用它并添加另一个关联记录:
change_two = Changeset.put_assoc(changeset_one, :foo_assocs, [%{index: 2}])
...
foo_assocs: [
#Ecto.Changeset<
action: :insert,
changes: %{index: 2},
errors: [],
data: #Linker.CustomForms.FooAssoc<>,
valid?: true
>
]
...
我的第一条记录被覆盖了。
【问题讨论】:
标签: elixir phoenix-framework ecto