モデルに has_many 関連付けを持つテーブル 'orders' と 'items' があります。
class Order < ActiveRecord::Base
has_many :items
class Item < ActiveRecord::Base
belongs_to :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
新しいアイテムが追加/編集/削除されるたびに、注文の「quantity_sum」フィールドが自動的に更新されるようにする方法を探していました。現在、注文の「quantity_sum」フィールドを更新するために、Item で after_save メソッドを使用しています。
「after_save」以外にこれを行う適切な方法はありますか???
関連の数を追跡するための「counter_cache」と同様に、レールは関連内のいくつかのフィールドの合計を自動的に追跡することをサポートしていますか?
ありがとう