Elixir(Ecto)中的包含方法是什么?

Yin*_*gce 0 elixir ecto phoenix-framework

我们在Rails中使用包含或其他类似的连接方法(或SQL);
那么函数在Elixir(Ecto)中解决了这个问题?

Gaz*_*ler 7

在Ecto你有这个preload功能.有两种方法可以使用预加载Ecto.Query.preload/3:

Repo.all(from p in Post,
           join: c in assoc(p, :comments),
           where: c.published_at > p.updated_at,
           preload: [comments: c])
Run Code Online (Sandbox Code Playgroud)

还有Ecto.Repo.preload/2:

posts = Repo.all(Post)
Repo.preload(posts, :comments)
Run Code Online (Sandbox Code Playgroud)