我在模型中有带有 has_many 关联的表“订单”和“项目”。
class Order < ActiveRecord::Base
has_many :items
class Item < ActiveRecord::Base
belongs_to :order
Item 由“quantity”字段组成,Order 由“quantity_sum”字段组成,以跟踪相关项目数量的总和。
例如:
Order 1 : name='Toms shopping cart', quantity_sum=12
Item 1 : name='T-shirt', quantity=10
Itme 2 : name='Shoes', quantity=2
我一直在寻找一种方法,以便每当添加/编辑/删除新项目时,Order 的“quantity_sum”字段都会自动更新。目前我一直在 Item 中使用 after_save 方法来更新 Order 的 'quantity_sum' 字段。
除了'after_save'之外,还有其他巧妙的方法吗???
类似于用于跟踪关联计数的“counter_cache”,rails 是否支持自动跟踪关联中某些字段的总和?
谢谢