2016-06-13 74 views
1

我有一个凤凰应用程序,我有民意调查,有很多候选人,有很多票。如何在凤凰框架中嵌套预加载模型

在我的控制器

我加载投票是这样的:

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) 

在视图中的考生在那里。问题是,属于特定候选者的投票不会在视图中预加载。

我该如何做到这一点?嵌套预装的语法是什么?

回答

3

要做到嵌套的预加载,你可以通过嵌套嵌套列表作为参数是这样的:

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

谢谢,就像风情万种!请问你在哪里找到这些信息? – RedRoosterMobile

+2

@RedRoosterMobile搜索此页上的“嵌套关联”:https://hexdocs.pm/ecto/Ecto.Query.html#preload/3 – Dogbert