我正在尝试构建的JSON非常简单 - 它是属于每个类别的可用产品的类别映射。它应该看起来像:
{
category_permalink : [<product 1>, <product 2>],
another_category : [<another product>, <yet another>]
}
并且类别has_many产品因此可以在控制器中获取,如
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,但它是这个应用程序的标准,我想看看它是否可行。
答案 0 :(得分:0)
拉出头发然后在大声问问题后解决10分钟的经典案例。猜猜我忘了我还在使用红宝石......
@categories.each do |cat|
node(cat.permalink) do
partial('products/product', :object => cat.products.active)
end
end