我正在尝试在预加载的地图中添加变更集,以防未找到预加载,但无法弄清楚如何插入变更集;任何想法?
我的变更集已打印出来,但在IO.inspect(item)中没有任何迹象......
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
答案 0 :(得分:2)
我的变更集已打印出来,但在IO.inspect(item)中没有任何迹象......
Map.put(item, :changeset, changeset)
不会更改item
,它会返回新的item
。
尝试:
new_item = Map.put(item, :changeset, changeset)
IO.inspect(new_item)