Ruby on rails 活动模型序列化程序不具有即时加载关系

Ruby on rails 活动模型序列化程序不具有即时加载关系,ruby-on-rails,ruby,eager-loading,active-model-serializers,Ruby On Rails,Ruby,Eager Loading,Active Model Serializers,我使用Bullet gem来查看我的应用程序中哪里有n+1查询。它告诉我在调用序列化程序时要立即加载我的关联taggings。我的代码如下所示: render json: @products, each_serializer: ::V1::ProductSerializer, includes: [:taggings], links: links, status: :ok 但在我加上这些之后,我仍然从子弹宝石那里得到同样的警告。看起来是这样的: GET /api/v1/product_feed

我使用Bullet gem来查看我的应用程序中哪里有n+1查询。它告诉我在调用序列化程序时要立即加载我的关联
taggings
。我的代码如下所示:

render json: @products, each_serializer: ::V1::ProductSerializer, includes: [:taggings], links: links, status: :ok
但在我加上这些之后,我仍然从子弹宝石那里得到同样的警告。看起来是这样的:

GET /api/v1/product_feed?state=CA&page=1
USE eager loading detected
  Product => [:taggings]
  Add to your finder: :includes => [:taggings]
Call stack
  /home/jay/current_projects/api/app/controllers/api/v1/products_controller.rb:111:in `product_feed'

有人知道为什么没有立即加载标记表。

您需要首先在查询中包含标记,然后序列化程序将能够读取加载的记录,而不是逐个记录单独请求标记关联记录

@products = Product.includes(:taggings)
render json: @products, each_serializer: ::V1::ProductSerializer, includes: [:taggings], links: links, status: :ok