カウンターキャッシュが更新されるたびに関数を呼び出す方法はRailsにありますか?
質問する
180 次
1 に答える
1
箱から出してそれを行う方法はありません。おそらく、それほど問題なくその機能を追加したGemを作成できます。after_createおよびafter_destroyコールバックから手動でカウンターを更新する方が簡単な場合があります。これにより、必要な他のコードも実行される可能性があります。
例えば:
class Parent
has_many :kids
# The parents table has a `kids_counter` column which acts as a counter cache.
end
class Kid
belongs_to :parent
after_create :hello
after_destroy :goodbye
def hello
Parent.increment_counter(:kids_counter, parent_id)
# Execute anything else you need here.
end
def goodbye
Parent.decrement_counter(:kids_counter, parent_id)
# Execute anything else you need here.
end
end
于 2012-04-24T13:03:46.003 に答える