我试图在这个散列中插入一些值,因为每个键都是一个数组但是当我打印所有结果时只是最后一个值
def self.hash_builder(query)
statistic = Hash.new { |hash, key| hash[key] = [] }
if !query.empty?
query.each do |q|
statistic[:sell].push(q.total_sell.to_i)
statistic[:price].push(q.total_price.to_f)
end
else
statistic[:sell].push(0)
statistic[:price].push(0.0)
end
return statistic
end
我在进行查询后调用此方法,并使用新的params向此发送查询,但每次我在此哈希中看到最后一个查询值
这是结果
答案 0 :(得分:1)
我会在这里回答,因为评论部分没有足够的空间。您对<<
的看法不对。它应该工作正常。
$ irb
irb(main):001:0> s = Hash.new {|h, k| h[k] = [] }
=> {}
irb(main):002:0> s[:sell] << 1
=> [1]
irb(main):003:0> s[:sell] << 2
=> [1, 2]
irb(main):004:0> s[:sell]
=> [1, 2]
irb(main):005:0> s[:price]
=> []
但是push
也应该有用。
irb(main):006:0> s[:sell].push(3)
=> [1, 2, 3]