コントローラには、次のような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')
ただし、最初はコントローラーに渡すものが2つあったことを思い出してください。そのため、「Layer2」と書かれたJSONの2番目のセクションでこれを行う方法がわかりません。