如何将SQL SELECT中的聚合列添加到Rails中的AR对象

时间:2014-11-24 16:34:14

标签: ruby-on-rails postgresql

假设我们有一个模型OrderItem,其中order has_many items

我现在想得到每个订单的所有商品的总和。

@orders = Order.select("orders.*, sum(items.amount) as items_sum)
              .joins("LEFT JOIN orders ON items.order_id = orders.id")
              .group("orders.id")

产生

SELECT sum(items.amount) as items_sum, transfers.* FROM "orders" 
LEFT JOIN items ON items.order_id = orders.id GROUP BY orders.id

SQL本身运行正常。问题是@orders没有包含items_sum。我希望能够@orders[0].items_sum。怎么可能?

1 个答案:

答案 0 :(得分:0)

你应该能够以

的形式访问它
@orders.first.items_sum

@orders.first["items_sum"]

文档here