store_dir возвращает несогласованный путь, когда в задании используется загрузчик

#carrierwave #ruby-on-rails-6

Вопрос:

Я пытаюсь загрузить некоторые видео с помощью несущей волны и тумана на S3. Я использую устаревший код, который правильно функционировал при использовании его в контроллере для загрузки видео. Я использую тот же загрузчик в задании backgroad и нахожу, что место, в которое загружается файл, является uploads/tmp/ каталогом по умолчанию.

Вот фрагмент кода загрузчика:

 class ProductMediumUploader < CarrierWave::Uploader::Base
  storage :fog
  include CarrierWave::MiniMagick
  PERCENTAGE_RESIZE = 0.5
  WIDTH_THRESHOLD, HEIGHT_THRESHOLD = [1200, 1200]
  PROCESSED_IMAGE_EXTENSIONS = [".svg"]

  def store_dir
    "product_medium/#{model.id}"
  end

  def filename
    if model.file_identifier.present?
      model.file_identifier
    elsif self.parent_version.present?
      self.parent_version.filename
    elsif original_filename.present?
      "#{secure_token}.#{file.extension}"
    end
  end
end
 

А вот модель, которая использует загрузчик

 class Product::Medium < ApplicationRecord
  mount_uploader :file, ProjectSetupUploader
end
 

Несоответствие возникает, когда я запускаю следующее:

 new_medium = Product::Medium.create(file: file)
 

Если я вызову этот код в контроллере, файл будет сохранен в ожидаемом расположении, но при создании в задании он будет сохранен в расположении этого формата:

 uploads/tmp/1629814315-220279600208118-0001-9250/20210824-71418-sxry8o.mp4
 

Кто-нибудь сталкивался с этой проблемой раньше?