如何使用 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 = '**'
我使用 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 = '**'