我有一个在线订购应用程序。这是我的结构:
订单包含许多items_variations,item_variations属于item。订单属于客户。物品有一个价格(列)。
现在在Order模型中,我有一个查询来查找订单金额,以及个别金额,如此
def self.order_amount
Order.joins(:items).where(customer_id: customer_id).sum('items.price')
end
def amount_item
ItemVariation.joins(:items).where(order_id: self.id).sum('items.price')
end
这是制作此型号的正确方法吗? AFAIK,我不应该在order.rb中使用ItemVariation,但我想不出更好的方法。
答案 0 :(得分:0)
您可以使用has_many: through
在Order.rb中:
has_many :items, through: :item_variations
def amount_item
items.sum(:price)
end