0

我正在尝试构建的 JSON 非常简单——它是类别到属于每个类别的可用产品的映射。它应该看起来像:

{
   category_permalink : [<product 1>, <product 2>],
   another_category   : [<another product>, <yet another>]
}

并且 Category 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,但它是这个应用程序的一种标准,我想看看它是否可以工作。

4

1 回答 1

0

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

@categories.each do |cat|
   node(cat.permalink) do
      partial('products/product', :object => cat.products.active)
   end
end
于 2013-02-18T01:50:33.357 回答