Скажем, у меня есть модель User
и сериализатор UserSerializer < ActiveModel::Serializer
, и контроллер выглядит следующим образом:
class UsersController < ApplicationController
respond_to :json
def index
respond_with User.all
end
end
Теперь, если я нахожусь в /users
, я получу ответ JSON, который выглядит так:
{
"users": [
{
"id": 7,
"name": "George"
},
{
"id": 8,
"name": "Dave"
}
.
.
.
]
}
Но что, если я хочу включить некоторую дополнительную информацию в ответ JSON, не относящийся ни к одному конкретному пользователю? Например:.
{
"time": "2014-01-06 16:52 GMT",
"url": "http://www.example.com",
"noOfUsers": 2,
"users": [
{
"id": 7,
"name": "George"
},
{
"id": 8,
"name": "Dave"
}
.
.
.
]
}
Этот пример надуман, но это хорошее приближение к тому, чего я хочу достичь. Возможно ли это с помощью активных сериализаторов моделей? (Возможно, путем подкласса ActiveModel::ArraySerializer
? Я не мог понять это). Как добавить дополнительные корневые элементы?