我有这样的循环:Ruby - 如何将数组添加到散列键?
car_data = Hash.new
Car.all.each do |c|
car_data[c.brand] = c.id
car_data['NEW'] << c.id if c.new == 1
end
我有这个剪断,并试图所有新车保存到car_data['NEW']
,但是这个代码保持在散列只有一个项目(应该有8)。
我也试图定义car_data['NEW']
为数组:
car_data = Hash.new
car_data['NEW'] = Hash.new
Car.all.each do |c|
car_data[c.brand] = c.id
car_data['NEW'] << c.id if c.new == 1
end
但结果是一样的 - 只是一个项目。 如何将整个数组保存到散列键元素?
谢谢。
Ruby约定是使用'{}'作为新的哈希,只有在提供像'Hash.new(0)'这样的默认值时才需要调用'Hash.new'。少即是多。 – tadman