Ich habe eine 3-Ebenen-Hierarchie Modellbeziehung vorzubelasten, das heißt, model1
gehört model2
model2
und gehört zu model3
.kann nicht mit mehreren Hierarchiemodell
Ich versuche model2
und model3
für die model1
vorzuladen:
my_models = Repo.all(Model1)
|> Enum.map(fn (x) ->
Repo.preload(x, :model2)
end)
|> Enum.map(fn(x) -> # error "no function clause matching in Ecto.Repo.Preloader.preload/4"
Repo.preload(x.model2, :model3)
end)
Der Fehler ist "keine Funktion Klausel Anpassung in Ecto.Repo.Preloader.preload/4"
Warum Vorbelastung Sie in 'Enum.map'? Das vereitelt den ganzen Zweck des Vorladens. Warum nicht? Repo.all (Model1) |> Rep.preload (model2: [: model3]) '? – Dogbert
@Dogbert, arbeitet nicht vorladen nur auf einer einzigen Einheit? – Kooooro
Nein, funktioniert auch in Listen und unterstützt auch das effiziente Laden verschachtelter Assoziationen. – Dogbert