在所述关系上使用 where 时填充 HABTM 关系
Populating HABTM relation when using where on said relation
假设我有一个 post 模型,它属于许多类别。当我为某个类别(id = 1)提取 posts 列表时,我是这样做的:
posts = Post.includes(:categories).where(categories: { id: 1 })
假设此列表的第一个 post 属于 3 个类别,但是当我这样做时:
posts.first.categories
...它只显示id = 1的类别。
有没有一种方法可以填充所有类别,这样我在遍历 post 时就不必执行 N + 1 次操作?
这样做
posts = Category.find(1).posts
现在您拥有类别中的所有 post,每个 post 的所有类别都可用。
假设我有一个 post 模型,它属于许多类别。当我为某个类别(id = 1)提取 posts 列表时,我是这样做的:
posts = Post.includes(:categories).where(categories: { id: 1 })
假设此列表的第一个 post 属于 3 个类别,但是当我这样做时:
posts.first.categories
...它只显示id = 1的类别。
有没有一种方法可以填充所有类别,这样我在遍历 post 时就不必执行 N + 1 次操作?
这样做
posts = Category.find(1).posts
现在您拥有类别中的所有 post,每个 post 的所有类别都可用。