如何使用 active_model_serializers 获取嵌套属性

How to get nested attributes using active_model_serializers

我使用 active_model_serializers gem,我需要获取 Service 模型的嵌套属性

class Category < ActiveRecord::Base
  has_many :subcategories
end

class Subcategory < ActiveRecord::Base
  has_many :services
end

class Service < ActiveRecord::Base
  belongs_to :subcategory
end

序列化程序:

class CategorySerializer < ActiveModel::Serializer
  attributes :id, :title

  has_many   :subcategories,      serializer: SubcategorySerializer
end

class SubcategorySerializer < ActiveModel::Serializer
  attributes :id, :title

  has_many   :services,      serializer: SubcategorySerializer
end

class ServiceSerializer < ActiveModel::Serializer
  attributes :id, :title
end

类别控制器:

class CategoriesController < BaseController
  def index
    categories = Category.all

    render json: categories, each_serializer: CategorySerializer
  end
end

类别序列化程序不 return Service 模型的嵌套属性。

{
        "id": 1,
        "title": "Category 1",
        "subcategories": [
            {
                "id": 1,
                "title": "Sub category 1"
            },
            {
                "id": 2,
                "title": "Sub category 2"
            }
    ]
  }

我需要使用子类别中的嵌套服务模型获得 json 结果 我使用 active_model_serializers (~> 0.10.2) 怎么做到的?

config/initializers/active_model_serializer.rb 文件中添加 ActiveModel::Serializer.config.default_includes = '**'