首页 > 解决方案 > 如何在先前组合和预加载的关联上嵌套关联?

问题描述

我有一个 ecto 查询,我试图构建一个额外的连接并预加载到已经包含预加载的组合查询上。

  defp list_assets_qry(asset_id) do
    from a in Asset,
      join: u in assoc(a, :user),
      where: a.asset_id == ^asset_id,
      preload: [user: u]
  end

  list_assets_qry(asset_id)
  |> join(:left, [_,u], p in assoc(u, :partner))
  |> preload([_,u,p], user: {u, partner: p})
  |> Repo.all()

:user上面的代码不会像我预期的那样给我嵌套的伙伴。

所以我有一个:partner嵌套在用户身上的关联。由于逻辑流程和现有的api,我必须调用第list_assets_qry一个。所以我的问题是我需要在以前预加载的用户上预加载嵌套伙伴。

标签: elixirphoenix-frameworkecto

解决方案


推荐阅读