2016-06-13 11 views
1

多くの投票者を持つ投票が多いPhoenixアプリケーションがあります。私のコントローラでフェニックスフレームワークでネストされたモデルのプリロードを行う方法

私はこのような投票をロードする:候補があるビューで

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) 

。問題は、特定の候補に属するVotesがビューにプリロードされていないことです。

どうすればこの問題を解決できますか?ネストされたプリロードの構文は何ですか?

答えて

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

関連する問題