Ruby on rails Rails:更新(有多个)子记录时更新父属性

Ruby on rails Rails:更新(有多个)子记录时更新父属性,ruby-on-rails,activerecord,associations,has-many,Ruby On Rails,Activerecord,Associations,Has Many,我有以下结构 class Order < ActiveRecord::Base has_many :order_lines, inverse_of: :order, validate: false, autosave: true end class OrderLine < ActiveRecord::Base belongs_to :order, inverse_of: :order_lines, touch: true, counter_cache: :line_coun

我有以下结构

class Order < ActiveRecord::Base
  has_many :order_lines, inverse_of: :order, validate: false, autosave: true
end

class OrderLine < ActiveRecord::Base
  belongs_to :order, inverse_of: :order_lines, touch: true, counter_cache: :line_count
end
类顺序
我希望在更新子(
OrderLine
)记录时更新父(
Order
)属性。假设,
订单行
价格/数量更新时,
订单总额
将更新

我可以在
订单行
级别的保存/提交
后添加
回调,或者在
订单
级别的提交
回调后添加
(因为
触摸:true
),以计算和更新
总计

但是,当行数很大(超过100行)时,它会在每次行更新时执行回调,这会影响性能。 此外,还有一些要素流,其中单个/多个行在不更新父(订单)记录的情况下得到更新。因此,在这种情况下,我确实需要在线级别上进行回调以更新总数


这里有没有更有效的方法来更新父属性(total)?

如果您只需要更新子项的总数,我认为计数器缓存会有所帮助。我需要更新一些其他属性,这些属性可以通过一些计算得到。