在控制器中,我有一个像这样的 respond_with:
respond_with(@layer1 , @layer2)
我需要的 JSON 输出是这样的:
{
"LayerOne": [
{
"name": "haha",
"number":"44"
}, // more ....
],
"LayerTwo": [
{
"name": "James Bond",
"score": 20
} // , ....
]
}
因此,为了获得第一部分,我编写了这样的序列化程序:
class Layer1Serializer < ActiveModel::Serializer
attributes :number, :name
def name
object.person.name
end
end
我将控制器更改为这样,所以我可以传递一个 ROOT,以便它在 JSON 中显示为“LayerOne”
respond_with(@Layer1, root: 'LayerOne')
但请记住,一开始我有两件事要传递给控制器,所以现在我不知道如何为 JSON 的第二部分“Layer2”执行此操作