TL;DR: Как я могу использовать jbuilder для создания JSON, который выглядит так?
[
{}, // Your new pagination state
[{}, ...] // An array of JSON objects
]
Более длинная версия:
Я пытаюсь заставить разбиение на страницы работать с Backbone.js и backbone-pageable https://github.com/wyuenho/backbone-pageable .
Backbone-pageable требует, чтобы возвращаемый JSON был отформатирован таким образом, чтобы он представлял собой массив из двух объектов. Первый объект — это обычный объект, содержащий управляющую информацию о разбиении на страницы. Второй объект должен быть массивом ваших фактических данных, отформатированных так, как обычно ожидает Backbone. Эти ожидания жестко закодированы в методах разбора backbone-pageable (источник)
Кажется странным иметь массив не похожих друг на друга элементов, но для этого варианта использования это кажется приемлемым.
Для json я использовал rabl в прошлом, но для науки я пытаюсь использовать jbuilder, и я зашел так далеко...
Структура JSON (неверно):
{
"current_page": 1,
"total_pages": 6,
...,
"entries": [
{ "id": 131 },
...
]
}
Используя этот код:
json.current_page @posts.current_page
...
json.entries @posts do |post|
json.extract! post, :id...
end
Ближе, но все равно очень неправильно :/
Спасибо