rails从数据库数据组的总和中获得特定值

时间:2019-01-02 01:23:56

标签: ruby-on-rails ruby database group-by sum

在这里,我有一个名为DeliveryCharge的数据库表。我试图获得每种方法的总重量值。我为此尝试过:

@a = DeliveryCharge.all.group("method")
@a_sum = @a.sum("weight")
logger.debug("-----------#{@a_sum}----------")

并给出以下输出:

-----------{"e-packet"=>6, "ems"=>482, "free-shipping"=>9999}----------

哪个好。但是现在我只希望输出数组中的方法而输出权重在另一个数组中。像这样: [“ e-packet”,“ ems”,“ free-shipping”]和[6,482,9999] 为此,我尝试了以下两种方法:

logger.debug("-----------#{@a_sum(:method)}----------")   
logger.debug("-----------#{@a_sum[:method]}----------")

哪些不起作用。谁能帮助我如何获得如上所述的输出? 我也尝试过 logger.debug("-----------#{Array(@a_sum)}----------") 从中我得到: ------[["e-packet", 6], ["ems", 482], ["free-shipping", 9999]]--- 但需要像我上面提到的那样获得它。

1 个答案:

答案 0 :(得分:1)

由于@a_sum是哈希,因此您可以简单地使用.keys.values方法访问这些项目。

@a_sum.keys@a_sum.values会给您您想要的东西!