gpt4 book ai didi

phoenix-framework - 未加载返回到父级的子级关联

转载 作者:行者123 更新时间:2023-12-02 04:09:20 25 4
gpt4 key购买 nike

我有两个与has_many和belongs_to相关的模型。使用 Repo.preload 加载工作正常,但我注意到子级没有与父级的关联 -- 看到 Ecto.Association.NotLoaded。

我是否也必须将子关联预加载回父关联?有没有办法让两个关联从父预加载调用链接起来?

(我使用的是 Ecto 2.0 rc5。)

最佳答案

Do I have to preload the child association back to the parent as well? Is there a way to have the both association linked up from the parent preload call?

由于 Elixir 映射(以及结构)是不可变的,因此其中不可能有循环,而这正是您从子级返回其父级所需的引用。

我通常解决此问题的方法是将父级与子级一起显式传递给需要访问两者的任何函数,或者预加载一层关联(但如果您已经拥有父级关联,则这种方法会浪费内存)加载到某处):

Repo.get(Post, 1) |> Repo.preload([comments: [:post]])

这将使帖子的所有评论都嵌入帖子的副本(但这些帖子不会有他们的 评论已加载)。

关于phoenix-framework - 未加载返回到父级的子级关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37720985/

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