默认销毁到sidekiq任务

时间:2014-02-04 05:19:43

标签: ruby-on-rails sidekiq dependent-destroy

在我的Rails应用程序中,我有一个名为Steps的模型可以包含许多图像:

class Step < ActiveRecord::Base
     has_many :images, :dependent => :destroy
     ...

由于依赖的破坏条件,当我删除一个步骤时,它会删除所有相应的图像。

但是,我希望在后台任务中删除图像。我知道我可以通过调用控制器中的工作人员使用sidekiq来做到这一点:

    @step.images.each do |image|
      CarrierwaveImageDeleteWorker.perform_async(image.id)
    end

但是由于依赖的破坏条件会自动删除图像,所以我不确定如何调用sidekiq worker。 触发销毁操作后,图像自动调用sidekiq后台任务的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我通过覆盖我的Image模型中的默认destroy方法来修复此问题,如下所示:

  # override destroy method to put it in a background task
  class Image < ActiveRecord::Base

  def destroy
    CarrierwaveImageDeleteWorker.perform_async(self.id)
  end