我有订单模型,卖家模型和报价模型。订单有很多报价,卖家有很多报价,报价属于订单和卖家。
现在我想添加一个付款模式,它会捕获报价的付款。我有两个选择:
付款具有quote_id且属于报价。令我感到困扰的是,我不确定如何使用ActiveRecord定义卖家和付款之间的关系。我想使用@seller.payments
之类的内容列出卖家收到的所有付款。 @seller.quotes.joins(:payments)
可能有用,但很难看。
付款有sell_id和order_id,因此卖家有很多付款。付款可以使用复合键[seller_id,order_id](使用复合主键宝石)属于报价
事情是可能有其他模型属于报价,但与卖方的关系更重要(例如评级)。这似乎是一种非常常见的情况。我想知道哪个选项更好,还有其他更优雅的解决方案。
答案 0 :(得分:0)
如果您使用第一个选项,则可以使用
class Seller < ActiveRecord::Base
has_many :quotes
has_many :payments, through: :quotes
end
这将允许您执行@seller.payments