0

カウンターキャッシュが更新されるたびに関数を呼び出す方法はRailsにありますか?

4

1 に答える 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 に答える