我可以使用什么功能来检查是否已加载关联?检查是否加载了关联而不是尝试使用它并获得Ecto.Association.NotLoaded错误会很好.
不确定是否有内置函数来检查这个,但你可以这样编写自己的函数:
defmodule PreloadCheck do
def is_preloaded(model, assoc) do
case Map.get(model, assoc) do
%Ecto.Association.NotLoaded{} -> false
_ -> true
end
end
end
Run Code Online (Sandbox Code Playgroud)
这assoc将是表示您的关联名称的原子.
使用模式匹配case可以检查您的关联是否已加载或者是否仍在返回Ecto.Association.NotLoaded结构.
| 归档时间: |
|
| 查看次数: |
3508 次 |
| 最近记录: |