将rails中的多维数组映射到数组

时间:2013-05-08 18:51:30

标签: ruby-on-rails arrays ruby-on-rails-3 multidimensional-array

我有一个用户通过cellared_beers在他们的酒窖中拥有的啤酒列表,以便用户有多个beerscellared_beers,反之亦然。每个cellared_beer都有附加数据,如年份和大小。

我想在页面上为用户显示cellared_beers的计算结果。现在我有以下代码来获取计数:

beer_groups = @user.cellared_beers.count(:group => [:beer_id,:year,:size])
=> {[1, 2008, "12oz"]=>1, [1, 2009, "12oz"]=>3, [1, 2010, "12oz"]=>1}

如何将其映射出来,以便根据beer_id,年份,大小和金额显示啤酒属性?

类似的东西:

Foo Beer(beer.name), Bar Brewery(beer.brewery.name),2008,12oz,1
Foo Beer(beer.name), Bar Brewery(beer.brewery.name),2009,12oz,3
Foo Beer(beer.name), Bar Brewery(beer.brewery.name),2010,12oz,1

1 个答案:

答案 0 :(得分:0)

你的意思是在一个字符串中,像这样?

{[1, 2008, "12oz"]=>1, [1, 2009, "12oz"]=>3, [1, 2010, "12oz"]=>1}.each.map do |values,count| 
    beer = Beer.find(values[0])
   "#{beer.name}, #{beer.brewery.name},#{values[1]},#{values[2]}, #{count}"
end