【问题标题】:default destroy to a sidekiq task默认销毁到 sidekiq 任务
【发布时间】:2014-02-04 05:19:43
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    我通过覆盖我的 Image 模型中的默认销毁方法解决了这个问题,如下所示:

      # override destroy method to put it in a background task
      class Image < ActiveRecord::Base
    
      def destroy
        CarrierwaveImageDeleteWorker.perform_async(self.id)
      end
    

    【讨论】:

    • 你能用 CarrierwaveImageDeleteWorker 代码改进你的答案吗?
    猜你喜欢
    • 2017-11-29
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 2014-01-30
    • 2015-03-21
    相关资源
    最近更新 更多