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
xquantity
x12
组成
这是我在订单模型中的计算结果:
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
这将为您提供与销售
/订单
相关的各个对象,这些对象将通过以下方式提供:
当我们在:所属的和:有许多关联的上调用刑事.监狱而没有:反向的,它将访问数据库。有了:倒数的,如果我们在内存中已经有了监狱记录,那么罪犯。监狱将指向同一个监狱
太好了,谢谢你。很有魅力:)太好了,谢谢你。工作就像一个符咒:)