Рабл и массив массивов

Я не мог найти решение, поэтому я решил спросить здесь. У меня есть этот массив (конструкция может быть изменена при необходимости):

[[{:time=>2014, :amount=>148.24018480434023}, {:time=>2015, :amount=>152.5625744766238}], [{:time=>2014, :amount=>151.06717076828187}, {:time=>2015, :amount=>158.43869963240266}]]

В шаблоне Rabl у меня есть:

collection @array, object_root: false

node :collection do |s|
  s 
end

И ответ:

[{"collection": [{"time": 2014,"amount": 148.24018480434023},{"time": 2015,"amount": 152.5625744766238}]},{"collection": [{"time": 2014,"amount": 151.06717076828187},{"time": 2015,"amount": 158.43869963240266}]}]

Однако я хотел бы избавиться от узлов "коллекции" и получить именно такой ответ:

[ [{ time: 2014, amount: 138.92 }, { time: 2015, amount: 142.98 }], [{ time: 2014, amount: 141.57 }, { time: 2015, amount: 148.48 }] ]

2 ответа

Если хочешь избавиться от рута попробуй

#  config/initializers/rabl_init.rb
Rabl.configure do |config|
  config.include_json_root = false
  config.include_child_root = false
end

https://github.com/nesquena/rabl/issues/4

Аналогично: удаление дочерних корневых узлов в RABL

Я знаю, что это старый вопрос, но ради потомков. Самый простой подход - удалить коллекцию: при вызове узла. Так что для вашего примера это будет как ниже

collection @array, object_root: false

node do |s|
  s 
end
Другие вопросы по тегам