2016-06-13 12 views
1

Ich habe eine Phoenix App, wo ich Umfragen habe, die viele Kandidaten haben, die viele Stimmen haben.Wie geschachtelte Preload von Modellen in Phoenix Framework zu tun

in meinem Controller lade ich die Umfrage wie folgt aus:

poll = Repo.get_by!(Poll, url: String.downcase(url)) 
    |> Repo.preload([:candidates]) 
# and set it for the view like this 
render(conn, "poll.html", poll: poll) 

In der Ansicht, die Kandidaten sind. Das Problem ist, dass die Stimmen, die zu einem bestimmten Kandidaten gehören, in der Ansicht nicht vorgeladen sind.

Wie kann ich das erreichen? Wie lautet die Syntax für verschachtelte Preloads?

Antwort

3

verschachtelte Vorbelastungen zu tun, können Sie eine verschachtelte Liste als Argument wie folgt verschachtelt Pass:

poll = Repo.get_by!(Poll, url: String.downcase(url)) 
    |> Repo.preload([candidates: [:votes]]) 
+0

Dank, funktioniert wie Charme! Darf ich Sie fragen, wo Sie diese Informationen gefunden haben? – RedRoosterMobile

+2

@RedRoosterMobile Suche nach "Verschachtelte Assoziationen" auf dieser Seite: https://hexdocs.pm/ecto/Ecto.Query.html#preload/3 – Dogbert

Verwandte Themen