JSON, который я пытаюсь построить, довольно прост — это карта категорий с доступными продуктами, принадлежащими каждой категории. Это должно выглядеть примерно так:
{
category_permalink : [<product 1>, <product 2>],
another_category : [<another product>, <yet another>]
}
И категория has_many Products, поэтому ее можно получить в контроллере, например
Category.where(:permalink => params[:selected_categories]).includes :products
Но RABL, кажется, действительно хочет обернуть все в массив. Я пробовал много разных вариантов, включая такие вещи, как
collection @categories
node do |cat|
{ cat.permalink => partial('products/product', :object => cat.products) }
end
Это близко, но весь результат оборачивает в массив и дает мне N одноэлементных массивов для каждой категории.
Причина, по которой мне нужен этот JSON, заключается в том, что он действительно хорошо работает с интерфейсным приложением, которое выполняет этот запрос. Все остальное будет означать несколько уродливых хаков на уровне JS.
Я знаю, что мне также не нужно использовать RABL для этого, но это своего рода стандарт для этого приложения, и я хотел бы посмотреть, сможет ли он работать.