gpt4 book ai didi

elixir - 默认情况下预加载Ecto关联

转载 作者:行者123 更新时间:2023-12-03 20:03:22 24 4
gpt4 key购买 nike

有什么方法可以在不显式使用preload的情况下预加载ecto关联?

类似于模式中的选项?

schema "gadgets" do
field :foo,
has_many :bars, Myapp.Bar, preload: true
end


我正在做类似的事情

Repo.get(Gadget, id)
|> Repo.preload: [:bars]


编辑:我要这样做的原因是因为我想将相关模型预加载到已经预加载的相关模型中,例如

 preload: [:invoices preload: :items] 

最佳答案

您还可以将预加载作为查询的一部分:

defmodule Gadget do
use Ecto.Model

# ...

def with_invoices(query) do
from q in query, preload: [invoices: :items]
end
end


然后:

Gadget
|> Gadget.with_invoices
|> Repo.get!(id)

关于elixir - 默认情况下预加载Ecto关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29595421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com