2017-03-09 57 views
0

我有一個Client模型has_many :orders但每個訂單也belongs_to :order_type。這裏的OrderType基本上用作過濾表,因爲每個訂單都有一組共同的屬性,如:category, :size, :date,並且有幾千個條目,所以我保留這個單獨的模型是有意義的,而不是將這些信息保留在每個單獨的訂單條目上。Rails模型設計has_many與過濾器模型

我對如何設置,我需要一個連接表,所以我基本上可以查詢像這樣的協會,一個多小的困惑:

c = Client.find(x) 
order_conditions = {date: "2016-01-01".."2016-01-31", category: "x") 

如何需要設置模型和associatons /連接表,這樣我就可以獲得與給定客戶端的某種OrderType條件列表相匹配的所有訂單?

好像我需要多聯接根據this12.1.3 Joining Multiple Associations

回答

0

你應該嘗試

def Client 
    has_many :orders 
end 

def Order 
    belongs_to :client 
    belongs_to :order_type 
end 

def OrderType 
    has_many :orders 
end 


# To query 
client.orders.joins(:order_type).where(order_types: { date: date }) 
0

地方你能不能讓

訂單類型belong_to:爲了

而且 訂購HAS_ONE:ORDER_TYPE

然後你就可以查找具有匹配訂單類型的所有訂單。 (雖然我可能只包括訂單數據庫ORDER_TYPE)

我寧願一個新手所以道歉,如果這是無稽之談,並請刪除:)