-1

我将如何在这里实现每个循环并省略最后一条记录的逗号?代码基于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
4

1 回答 1

2

如果您需要一个数组作为输出,请使用 map

:data=> @products.map{ |p|{:name=> p.name, :y=> p.price} }
于 2012-10-06T11:05:41.437 回答