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)
我宁愿一个新手所以道歉,如果这是无稽之谈,并请删除:)