我on Rails项目工作如何递增散列/对象的值没有确定前他们
我的产品以其独特的代码的哈希作为密钥
products = [
{"dt": "2016-01-01",
"quantity": 122,
"amount": 123000
},
{"dt": "2016-01-02",
"quantity": 97,
"amount": 97800
}
{"dt": "2016-01-03",
"quantity": 142,
"amount": 163000
}
]
我的目标是创建这3天报告的数量之和。我遍历该对象。我想为每个迭代中增加的名为“total_quantity”的数组中的每个对象添加新属性。
products.each do |row|
rowqty += row['quantity']
rowamount += row['amount']
row['total_quantity'] = rowqty
row['total_amount'] = rowamount
end
你可以看到,我定义了两个额外的变量“rowqty”和“rowamount”用它们来创建每个对象的新属性之前举行更新的数据。
,但我得到这个错误
undefined method `+' for nil:NilClass
然而,迭代之前,如果我预先定义的变量,它似乎工作。像这样
rowqty = 0
rowamount = 0
products.each do |row|
rowqty += row['quantity']
rowamount += row['amount']
row['total_quantity'] = rowqty
row['total_amount'] = rowamount
end
我知道它需要变量存在才能对它做些什么。但是我不得不承认,当数据变得复杂的时候,我会遇到这样的问题。
因此,无论如何应用数学运算,如增加,减少或任何与不在范围内退出的变量?
在PHP中,它似乎创建了新的变量。这包括数组和对象。但我不能做在Rails的
只需在您的标签选择上挑选一个即使您可能将其作为Rails项目的一部分,这完全是一个Ruby问题。 – dwenzel