我想使用活动模型序列化程序来序列化JSON。问题是嵌套需要基于某些标准在同一模型上,例如
我的模特是
name | code | description | group_name | group_code
--------------------------------------------------------
adhir | ad | some desc | grp1 | g1
aima | ai | some other desc | grp1 | g1
我希望JSON看起来像
[
{
group_name: grp1,
group_code: g1,
values: [
{
name: adhir,
code: ad,
desc: some desc
},
{
name: aima,
code: ai,
desc: some other description
}
]
所有帮助表示赞赏
答案 0 :(得分:0)
我不确定是否可以在普通的活动模型序列化器中实现。您可以将它与简单的JSON生成结合起来。此外,您可以在地图中插入自己的序列化程序。
Category
.all
.group_by { |category| [category.group_name, category.group_code] }
.map do |key, records|
{
group_name: key[0],
group_code: key[1],
values: records.map { |record| CategoriesSerializer.new(record, {}).attributes }
}
end
使用序列化程序:
class CategoriesSerializer < ActiveModel::Serializer
attributes :name, :code, :description
end