【发布时间】:2023-03-17 14:08:01
【问题描述】:
我正在尝试创建一个嵌套的序列化哈希数组。到目前为止,我有以下内容。它不返回嵌套的序列化程序,而只返回哈希数组。
module Api
module V1
class ReportShowSerializer < ActiveModel::Serializer
attributes :name, :schedule, :uuid, :reports
has_many :reports, each_serializer: ReportBuildSerializer
def reports
[
{date: '2018-10-04', test: 'a'},
{date: '2018-10-03', test: 'b'}
]
end
end
end
end
和其他序列化程序
module Api
module V1
class ReportBuildSerializer < ActiveModel::Serializer
attributes :test, :date, :var
def var
"var"
end
end
end
end
但它返回以下内容
{
"data": {
"id": "2",
"type": "reports",
"attributes": {
"name": "Another test report",
"schedule": "weekly",
"uuid": "f10736ae-bf5c-4e43-8cd4-35eb0dc12efd",
"reports": [
{
"date": "2018-10-04",
"test": "ff"
},
{
"date": "2018-10-03",
"test": "ff"
}
]
}
}
}
所以我认为它没有使用ReportBuildSerializer
【问题讨论】:
-
我猜你应该重命名/删除
reports方法,它与关联的序列化程序冲突
标签: ruby-on-rails ruby active-model-serializers rails-api