如果Stripe中的收费日期相同,则所有金额的总和

我正在迭代条纹电荷对象 ,我想总结每天的总amount

 # Returns an array object of charges for a customer @customer_charges = Stripe::Charge.all(:customer => current_user.stripeid) 

浏览次数:

  On Monday, you were charged a total of   

当然,上述仅仅是每笔费用的输出线,而不是当天的总和。 我面临的困难是总结每一天的所有费用。 有人能指出我正确的方向吗?

输出如下:

 "On Monday, you were charged a total of 200000" "On Tueesday, you were charged a total of 500000" etc... 

代替:

 On Monday, you were charged a total of 100000" On Monday, you were charged a total of 100000" etc... 

我的view看起来很乱,用于比较日期的if statements行,看起来不正确。

您需要遍历Stripe中的每个费用对象,存储每笔费用的金额和解析日期:

 # Fetch charges in batches of 100 records from Stripe API, yield each individual charge to a block. def each_stripe_charge_for_customer(customer_id) starting_after = nil loop do customer_charges = Stripe::Charge.all(customer: customer_id, limit: 100, starting_after: starting_after) break if customer_charges.none? charges.each do |charge| yield charge end starting_after = charges.data.last.id end end charges_by_date = Hash.new(0) # For each Stripe charge, store the date and amount into a hash. each_stripe_charge_for_customer(current_user.stripeid) do |stripe_charge| # Parses Stripe's timestamp to a Ruby date object. `to_date` converts a DateTime object to a date (daily resolution). charge_date = Time.at(stripe_charge.created).to_date charge_amount = stripe_charge.amount charges_by_date[charge_date] += charge_amount end