0

在rails中,有沒有辦法獲取傳遞模型。我們有以下模型結構。Rails has_many通過中間模型

顧客有很多購買,並且購買有很多訂單。客戶與訂單模型之間沒有直接關係。他們可以通過購買模式進行關聯。現在我想獲取屬於客戶的所有訂單。有沒有通過單個查詢來實現這一點的方法。我們目前的模型看起來像。

Customer 
    - customer_id 

Purchase 
    - purchase_id 
    - customer_id 

Order 
    - order_id 
    - purchase_id 
    - status 

我用例是給客戶對象,列出哪些是在一個特定的狀態(例如狀態=「完成」)一個客戶的所有訂單。

行SQL會看起來像

SELECT purchase_id, order_id FROM Customer c INNER JOIN Purchase p ON p.customer_id = c.customer_id INNER JOIN Order o ON o.purchase_id = p.purchase_id WHERE o.status = 'Complete'; 
+0

使用has_many:通過Association – vipin

回答

1

你可以用這個做:

Order.select('purchases.id AS purchase_id, orders.id AS order_id').joins(purchase: :customer).where('orders.status = ?', 'Complete') 

我希望這可以幫助您。