我如何在这里实现每个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
答案 0 :(得分:2)
如果您需要数组作为输出,请使用地图
:data=> @products.map{ |p|{:name=> p.name, :y=> p.price} }