Ruby on rails Rails:当子项获取';他得救了

Ruby on rails Rails:当子项获取';他得救了,ruby-on-rails,Ruby On Rails,我有以下结构:订单有许多销售(而销售属于订单) 每次销售都有一个数量和一个价格列 每个订单都有一个totalprice列 totalprice由属于父订单的销售记录中的pricexquantityx12组成 这是我在订单模型中的计算结果: class Order < ActiveRecord::Base has_many :sales, dependent: :destroy after_save :calc def price sales.to_a.sum { |

我有以下结构:
订单
有许多
销售(而
销售
属于
订单)

  • 每次销售都有一个
    数量
    和一个
    价格
  • 每个订单都有一个
    totalprice
totalprice
由属于父
订单的销售记录中的
price
x
quantity
x
12
组成

这是我在订单模型中的计算结果:

class Order < ActiveRecord::Base
  has_many :sales, dependent: :destroy
  after_save :calc

  def price
   sales.to_a.sum { |item| item.price }
  end

  def totalpricex12
   totalpricex12 = price*12
  end

  def totaldiscount
   sales.to_a.sum { |item| item.discount }
  end

  def calc
   calc = (totalpricex12.to_f)-(totaldiscount.to_f)
   self.update_columns(totalprice: calc)
  end
end
类顺序
问题是:
totalprice
仅在
订单更新或保存时更新,但在添加或删除新的
销售时不更新。

您可以使用回调,例如:

class Sale < ... 
  belongs_to :order

  after_save do
    order.calc
  end
end
class Sale < ... 
  belongs_to :order
  after_save :update_order

  def update_order
    # call parent to self-update or something like this
  end
end
class销售<。。。
属于:秩序
保存后做什么
order.calc
终止
终止
例如:

class Sale < ... 
  belongs_to :order

  after_save do
    order.calc
  end
end
class Sale < ... 
  belongs_to :order
  after_save :update_order

  def update_order
    # call parent to self-update or something like this
  end
end
class销售<。。。
属于:秩序
保存后:更新订单
def更新命令
#呼叫家长进行自我更新或类似的操作
终止
终止
您可以使用回调,例如:

class Sale < ... 
  belongs_to :order

  after_save do
    order.calc
  end
end
class Sale < ... 
  belongs_to :order
  after_save :update_order

  def update_order
    # call parent to self-update or something like this
  end
end
class销售<。。。
属于:秩序
保存后做什么
order.calc
终止
终止
例如:

class Sale < ... 
  belongs_to :order

  after_save do
    order.calc
  end
end
class Sale < ... 
  belongs_to :order
  after_save :update_order

  def update_order
    # call parent to self-update or something like this
  end
end
class销售<。。。
属于:秩序
保存后:更新订单
def更新命令
#呼叫家长进行自我更新或类似的操作
终止
终止
您需要使用:

#app/models/sale.rb
类Sale
这将为您提供与
销售
/
订单
相关的各个对象,这些对象将通过以下方式提供:

当我们在
:所属的
:有许多关联的
上调用
刑事.监狱
而没有
:反向的
,它将访问数据库。有了
:倒数的
,如果我们在内存中已经有了监狱记录,那么
罪犯。监狱将指向同一个监狱

您将要使用:

#app/models/sale.rb
类Sale
这将为您提供与
销售
/
订单
相关的各个对象,这些对象将通过以下方式提供:

当我们在
:所属的
:有许多关联的
上调用
刑事.监狱
而没有
:反向的
,它将访问数据库。有了
:倒数的
,如果我们在内存中已经有了监狱记录,那么
罪犯。监狱将指向同一个监狱


太好了,谢谢你。很有魅力:)太好了,谢谢你。工作就像一个符咒:)