2011-04-01 54 views
2

我有一个order模型belongs_to :user,一个product模型,连接模型order_product该产品的数量:Rails 3中ActiveRecord的查询:找到已订购由该用户

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

order_product模型有一个quantity列。

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

+0

很好的问题,这方面的一个例子是有时很难找到。 – BeepDog 2011-05-09 18:17:38

回答

3

这应该做的伎俩:

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

这是一个SQL查询,良好的显示一个产品。如果您显示的是多个产品,那么您将按产品ID进行分组,从而为您提供一系列值,从中进行查找。

0

它可以像下面,如果你想用Rails 3查询链

p.order_product.includes( “订单”)在哪里。(:订单=> {:USER_ID => 'USER_ID'})的.sum:看(数量)

尝试,如果一切正常,也许我错过了一些东西