Я не могу решить эту ошибку carrierwave_backgrounder: NameError: неинициализированная константа Вложение - PullRequest
0 голосов
/ 06 марта 2020

У меня есть приложение rails, которое использует Carrierwave и carrierwave_backgrounder gem для обработки и хранения изображений в заднем плане (я использую resque).

Ошибка в вопросе: CarrierWave :: Workers :: StoreAsset NameError: неинициализированная константа Attachment (см. Изображение ошибки ниже).

Я действительно мог бы использовать некоторую помощь с Эта проблема. Я проверил в Интернете и попробовал все, что мог придумать, но не могу это исправить.

У меня есть модель Attachment со следующим кодом:

class Attachment < ApplicationRecord
  include Indestructible
  include FileType

  belongs_to :attachable, polymorphic: true
  mount_uploader :file, FileUploader
  store_in_background :file

  attr_accessor :width, :height

  before_save :direct_upload

  def is_image?
    extensions = %w(jpg jpeg gif png tiff bmp)
    extensions.include? self.extension
  end

  def extension
    self.file.try(:extension).try(:downcase)
  end

  def belongs_to_foto?
    self.attachable_type == "Photo"
  end

  protected

    # Skipping damn carrierwave_backgrounder when .pdf 
    def direct_upload
      self.process_file_upload = true if self.extension == 'pdf'
    end

end

Я продолжаю получать эта проблема в моем журнале восстановления:

enter image description here

Файл заканчивается сохранением локально при загрузке / tmp, но никогда не очищается отсюда и сохраняется в s3 как это должно быть с store_in_background. Странно то, что эта ошибка происходит случайно. Он работает нормально, может быть, 30-50% времени и сохраняется в s3, но большую часть времени я получаю эту ошибку, и она застревает в моем локальном хранилище сервера. Что является огромной проблемой, как вы можете себе представить. Мы получаем много загрузок изображений в нашем приложении.

Что может быть причиной этого? Я буду очень признателен за любую помощь или комментарии, у нас была эта проблема в течение нескольких месяцев. Спасибо.

...