【发布时间】:2016-01-25 05:00:25
【问题描述】:
我们在 Rails 中使用包含或其他类似的连接方法(或 SQL);
那么 Elixir(Ecto) 中解决这个问题的函数是什么?
【问题讨论】:
标签: elixir phoenix-framework ecto
我们在 Rails 中使用包含或其他类似的连接方法(或 SQL);
那么 Elixir(Ecto) 中解决这个问题的函数是什么?
【问题讨论】:
标签: elixir phoenix-framework ecto
在 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])
posts = Repo.all(Post)
Repo.preload(posts, :comments)
【讨论】:
看起来您正在寻找preload。
此示例取自 José Valim 的以下博客文章,应该可以帮助您了解:
Repo.all from p in Post,
join: c in assoc(p, :comments),
where: c.votes > p.votes
preload: [comments: c]
http://blog.plataformatec.com.br/2015/08/working-with-ecto-associations-and-embeds/
【讨论】: