有什么办法可以逆向预加载吗?
%Post{
comments: []
}
posts = Repo.all(Post) |> Repo.unload(:comments)
%Post{
comments: #Ecto.Association.NotLoaded<association :comments is not loaded>,
}
最佳答案
Ecto.Association.NotLoaded
是一个普通的简单结构,所以你可能相对容易地实现这个 unpreload
你自己:
defmodule Unpreloader do
def forget(struct, field, cardinality \\ :one) do
%{struct |
field => %Ecto.Association.NotLoaded{
__field__: field,
__owner__: struct.__struct__,
__cardinality__: cardinality
}
}
end
end
稍后将其用作:
Unpreloader.forget(%Post{....}, :comments)
关于elixir - Ecto 去除预紧力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49996642/