2011-04-01 102 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:看(數量)

嘗試,如果一切正常,也許我錯過了一些東西