在此实现每个do循环

时间:2012-10-06 10:56:05

标签: ruby-on-rails ruby highcharts

我如何在这里实现每个do循环并省略最后一条记录的逗号?代码基于here

@h = LazyHighCharts::HighChart.new('graph') do |f|
   f.series(:type=> 'pie',:name=> 'Total consumption', :data=> [
        #implement a each do loop here  
        @products.each do |p|
        {
           :name=> p.name, :y=> p.price
        },
        end
        ])
end

我希望输出为:

{:name=> "Cereal", :y=> 5}, 
{:name=> "Dog Buscuits", :y=> 12},
{:name=> "Steak", :y=> 8} #i dont want a comma for the last record

但我的当前循环最后输入一个逗号,所以我得到语法错误

{:name=> "Cereal", :y=> 5}, 
{:name=> "Dog Buscuits", :y=> 12},
{:name=> "Steak", :y=> 8}, #ERROR here

1 个答案:

答案 0 :(得分:2)

如果您需要数组作为输出,请使用地图

:data=> @products.map{ |p|{:name=> p.name, :y=> p.price} }