Ruby on rails 复杂arel查询

Ruby on rails 复杂arel查询,ruby-on-rails,activerecord,arel,Ruby On Rails,Activerecord,Arel,我有一个模型,其中一篇文章可以有多个标记(一个标记可以有多篇文章)。文章有两个子类,产品和套件。产品有一个类别,套件没有 如何获取某个标签(我知道tag.id)的所有文章(包括工具包和产品),并加载产品类别(避免n+1)?假设您的关联已经设置好(即标签有很多:文章到文章标签等),如果您使用的是Rails 3,则在查找时可以使用#include。将您的归属:类别移动到您的文章类(是的,这样做在语义上是可以的),然后: 应该有用 不幸的是,事实并非如此。未找到名为“类别”的关联;也许你拼错了?文章没

我有一个模型,其中一篇文章可以有多个标记(一个标记可以有多篇文章)。文章有两个子类,产品和套件。产品有一个类别,套件没有


如何获取某个标签(我知道tag.id)的所有文章(包括工具包和产品),并加载产品类别(避免n+1)?

假设您的关联已经设置好(即标签有很多:文章到文章标签等),如果您使用的是Rails 3,则在查找时可以使用#include。将您的归属:类别移动到您的文章类(是的,这样做在语义上是可以的),然后:

应该有用


不幸的是,事实并非如此。未找到名为“类别”的关联;也许你拼错了?文章没有类别,只有产品有。啊,我明白了,你把类别放在文章的前面,但这在语义上是正确的,但在领域上是不正确的。工具包由多个文章组成,它们可以有不同的类别作为回报。我最后做的是预取所有类别(它们很少),然后对n+1进行一级缓存处理。工作没有问题。也许不是最好的选择,但似乎表现不错。
@tag = Tag.first
@tag.articles.includes(:category)