【问题标题】:whats the includes method in Elixir(Ecto)?Elixir(Ecto)中的包含方法是什么?
【发布时间】:2016-01-25 05:00:25
【问题描述】:

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

【问题讨论】:

    标签: elixir phoenix-framework ecto


    【解决方案1】:

    在 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])
    

    还有Ecto.Repo.preload/2

    posts = Repo.all(Post)
    Repo.preload(posts, :comments)
    

    【讨论】:

      【解决方案2】:

      看起来您正在寻找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/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-29
        • 2017-01-12
        • 2016-10-26
        • 2016-10-27
        • 2021-03-21
        • 2019-07-28
        相关资源
        最近更新 更多