2

我有一个order模型belongs_to :user,一个product模型,一个连接模型order_product

class OrderProduct < ActiveRecord::Base
  belongs_to :order
  belongs_to :product
end

order_product模型有一个quantity列。

我怎样才能找到p用户订购了多少产品u?我想找到一个使用 rails 3 的活动记录查询语法并尽可能在数据库级别进行的解决方案。我会很感激任何帮助。

4

2 回答 2

3

这应该够了吧:

u.order_products.where(:product_id => p.id).sum(:quantity)

这是一个单一的 SQL 查询,非常适合显示一个产品。如果您正在显示多个产品,那么您将按产品 ID 分组,从而为您提供一个值的哈希值,您可以从中进行查找。

于 2011-04-01T03:00:54.253 回答
0

如果您想使用 Rails 3 查询链,可能如下所示

p.order_product.includes("order").where(:orders => {:user_id => 'user_id'}).sum(:quantity)

试试看它是否有效,也许我错过了什么

于 2011-04-01T04:00:00.480 回答