Скажем, у меня есть модель 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
? Я не мог понять). Как добавить дополнительные корневые элементы?