Вы можете использовать обратный вызов after_commit
, чтобы сделать что-то после того, как вся транзакция прошла через базу данных.Это отличается в зависимости от используемой вами версии Rails (2.3.x против 3.xx), но по сути это что-то вроде следующего:
# model_observer.rb
class ModelObserver < ActiveRecord::Observer
def after_commit(instance)
do_something if instance.destroyed?
end
end
Вы можете прочитать некоторую документацию по Rails 3 after_commit
обратный вызов здесь .Если ваша версия Rails не имеет хука after_commit
, вы можете попробовать использовать этот гем , который обеспечит функциональность.