1
我有一个用户在其酒窖中通过cellared_beers
获得的啤酒列表,因此用户有很多beers
到cellared_beers
,反之亦然。每个cellared_beer
都有附加的数据,如年份和大小。将rails中的多维数组映射到数组
我想显示在页面上的用户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
@prognar谢谢,编辑以反映您的更改。在ruby中不需要1.9 – fotanus 2013-05-08 20:14:57
非常接近,但是我必须在'.map'之前添加'.each',因为它只返回第一组。 我把它放到一个数组beer_counts中,所以它看起来像: 'beer_counts = beer_groups.each.map do | values,count | beer = Beer.find(values [0]) “#{beer.name},#{beer.brewery.name},#{beer.style},#{beer.abv},#{values [1] },#{values [2]},#{count}“ end' 我的观点如何能够通过每一个? – prognar 2013-05-08 20:15:13
现在你有了一个简单的字符串数组,所以'beer_counts.each'将起作用。 – fotanus 2013-05-08 20:16:35