我无法解决这个carrierwave_backgrounder错误:NameError:未初始化的常量附件

时间:2020-03-06 17:01:50

标签: ruby-on-rails carrierwave carrierwave-backgrounder

我有一个使用Carrierwave和carrierwave_backgrounder gem的Rails应用程序,用于在backfround作业中处理和存储图像(我使用resque)。

有问题的错误: CarrierWave :: Workers :: StoreAsset NameError:未初始化的常量附件 (请参见下面的错误图片。)

对于这个问题,我真的可以使用一些帮助。我已经在网上搜寻并尝试了所有可以想到的方法,但是我无法解决此问题。

我有一个带有以下代码的附件模型:

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

我一直在resque日志中收到此问题:

enter image description here

文件最终会在上载/ tmp时保存在本地,但永远不会从此处清除并像使用store_in_background一样保存到s3。奇怪的是,这个错误是随机发生的。它可能在30-50%的时间内运行良好,并保存到s3,但是大多数时候我收到此错误,并且卡在了本地服务器存储中。您可以想象这是一个巨大的问题。我们的应用程序中上传了很多图片。

可能是什么原因造成的?我将非常感谢您的帮助或评论,我们已经解决了这个问题好几个月了。谢谢。

0 个答案:

没有答案