2017-08-01 3 views
1

J'essaie d'ajouter un ensemble de modifications dans une carte préchargée au cas où aucune précharge n'a été trouvée, mais je n'arrive pas à comprendre comment insérer l'ensemble de modifications; une idée?Ajouter l'ensemble de modifications au préchargement

Mon changeset est imprimé, mais aucun signe dans IO.inspect (article) ...

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 

Répondre

2

Mon changeset est imprimé, mais aucun signe dans IO.inspect (article) ...

Map.put(item, :changeset, changeset) ne change pas item, il retournera une nouvelle item.

essayer:

new_item = Map.put(item, :changeset, changeset) 
IO.inspect(new_item)