Elixir 将变更集添加到预加载

Elixir 将变更集添加到预加载,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,我试图在一个预加载的映射中添加一个变更集,以防没有找到预加载,但我不知道如何插入变更集;有什么想法吗 我的变更集已打印出来,但在IO.inspect(项目)中没有任何迹象 我的变更集已打印出来,但在IO.inspect(项目)中没有任何迹象 Map.put(项,:变更集,变更集)不会更改项,它将返回一个新的项 尝试: def select(conn, %{"list_id" => list_id}) do list = Repo.get!(List, list_id) list_i

我试图在一个预加载的映射中添加一个变更集,以防没有找到预加载,但我不知道如何插入变更集;有什么想法吗

我的变更集已打印出来,但在IO.inspect(项目)中没有任何迹象

我的变更集已打印出来,但在IO.inspect(项目)中没有任何迹象

Map.put(项,:变更集,变更集)
不会更改
,它将返回一个新的

尝试:

def select(conn, %{"list_id" => list_id}) do
  list = Repo.get!(List, list_id)
  list_id = list.id
  query  = from l in Learnit.Itemlist, where: l.list_id == ^list_id  # Filter on the list's ID
  items =
    Item
    |> Repo.all()
    |> Repo.preload(itemlists: query)
    |> Enum.map(&add_changeset(&1, list_id)) # Loop through the items to add changesets if there is no itemlist yet
  render(conn, "select.html", items: items, list: list)
end

defp add_changeset(item, list_id) do
  case Enum.count(item.itemlists) do
    0 -> # There is no itemlists yet : we create the changeset
      changeset = Itemlist.changeset(%Itemlist{}, %{item_id: item.id, list_id: list_id})
      IO.inspect(changeset)
      Map.put(item, :changeset, changeset)
      IO.inspect(item)
  end
end
new_item = Map.put(item, :changeset, changeset)
IO.inspect(new_item)