Ruby on rails Rails模型最佳实践

Ruby on rails Rails模型最佳实践,ruby-on-rails,model-view-controller,Ruby On Rails,Model View Controller,我有一个在线订购应用程序。以下是我的结构: 订单中有许多项目的变化,项目的变化属于项目。订单属于客户。项目有一个价格(列) 现在在订单模型中,我有一个查询来查找订单金额,以及类似的单个金额 def self.order_amount Order.joins(:items).where(customer_id: customer_id).sum('items.price') end def amount_item ItemVariation.joins(:items).where(ord

我有一个在线订购应用程序。以下是我的结构:

订单中有许多项目的变化,项目的变化属于项目。订单属于客户。项目有一个价格(列)

现在在订单模型中,我有一个查询来查找订单金额,以及类似的单个金额

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

这是制作这个模型的正确方法吗?好了,我不应该在order.rb中使用ItemVariation,但我想不出更好的方法。

您可以使用
has\u many:through

按顺序.rb:

has_many :items, through: :item_variations

def amount_item
    items.sum(:price)
end

itemvarization
是否也属于
Order
?是否有办法提高订单数量?可能,但如果不看您的模型,很难判断。
order\u amount
amount\u item
之间有什么区别?理想情况下,一个订单属于一个客户,因此
订单金额
应该是
项目。sum(:price)
实际上在这种情况下,我们有两个(将来更多)用户组合他们的订单,因此每个订单有两个客户(目前)。将
订单
项目变化
之间的关系作为代码发布,
项目
客户