-1

ここで each 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
4

1 に答える 1

2

出力として配列が必要な場合は、次のようなマップを使用してください

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