使用RABL从AR结果创建简单的键/值对映射

时间:2013-02-18 01:35:27

标签: ruby-on-rails json rabl

我正在尝试构建的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,但它是这个应用程序的标准,我想看看它是否可行。

1 个答案:

答案 0 :(得分:0)

拉出头发然后在大声问问题后解决10分钟的经典案例。猜猜我忘了我还在使用红宝石......

@categories.each do |cat|
   node(cat.permalink) do
      partial('products/product', :object => cat.products.active)
   end
end