Rails模型设计has_many与过滤器模型

问题描述:

我有一个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

你应该尝试

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 }) 

地方你能不能让

订单类型belong_to:为了

而且 订购HAS_ONE:ORDER_TYPE

然后你就可以查找具有匹配订单类型的所有订单。 (虽然我可能只包括订单数据库ORDER_TYPE)

我宁愿一个新手所以道歉,如果这是无稽之谈,并请删除:)