【问题标题】:after_commit :on => :destroy In a observer-like fashionafter_commit :on => :destroy 以类似观察者的方式
【发布时间】:2012-08-07 09:42:35
【问题描述】:

我想做以下事情:

after_commit :on => :destroy do
  Advert.clean_total_active_cache
end

但是以像这样的观察者的方式:

class AdvertObserver < ActiveRecord::Observer
  def after_commit advert
    Advert.clean_total_active_cache
  end
end

是“:on => :destroy”,给我带来了麻烦,我该如何指定?

【问题讨论】:

    标签: ruby-on-rails activerecord callback


    【解决方案1】:

    您可以检查记录是否没有被持久化和冻结:

    class AdvertObserver < ActiveRecord::Observer
      def after_commit advert
        if not advert.persisted? and advert.frozen?
          Advert.clean_total_active_cache
        end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多