如何使用其他模型的值对记录进行排名?

时间:2014-10-31 18:39:47

标签: ruby-on-rails

我是铁杆新手。

有这个问题。我有两个型号客户订单客户 has_many 订单订单 belongs_to 客户。每个订单都有一个货币价值:成本

现在,我如何根据他/她的所有订单花费的总成本对客户进行排名?

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您需要使用分组来累计每个客户的订单。然后,您可以按总数排序。

http://guides.rubyonrails.org/active_record_querying.html#group有一个类似于你正在做的例子。

答案 1 :(得分:0)

你可以做类似下面的事情

Customer.joins(:orders).select('customers.id, sum(orders.cost) as total_order_cost').order("total_order_cost")

如果您希望按降序使用order("total_order_cost desc")