В моем приложении 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 после запуска действия уничтожения?