Я работаю с Rabl некоторое время, и только сегодня я столкнулся с интересной проблемой, которую я не мог решить достаточно хорошо.
Итак, у меня есть коллекция, возвращенная из GET ".../list/512/resources", и вот мой пример шаблона рабла, который я использовал для возврата (без рута):
collection @resources
extends "api/v1/resources/_base"
=> { [ {...}, {...}, {...} ] }
Но теперь я понимаю, что хочу возвращать разные шаблоны для каждого ресурса в зависимости от их атрибутов... так это просто, верно?
node @resources => :resources do |resource|
if resource.type == 'Document'
partial('...', :object => resource)
elsif @resource.type == 'Folder'
partial('...', :object => resource)
end
end
=> { ресурсы: [ {...}, {...}, {...} ] }
Но ох! Теперь я не хочу, чтобы этот узел "ресурсы" был там... как это сделать? Я пробовал что-то вроде:
array = []
@resources.each do |resource|
if resource.type == 'Document'
array << partial('...', :object => resource)
elsif @resource.type == 'Folder'
array << partial('...', :object => resource)
end
end
collection array
но безуспешно, он возвращает пустые объекты, такие как => [ {}, {}, {}]. Любая идея, как я могу это сделать?