【问题标题】:undefined method `enqueue_active_job' for CarrierWave::Backgrounder:Module)CarrierWave::Backgrounder:Module 的未定义方法“enqueue_active_job”)
【发布时间】:2016-01-15 00:02:09
【问题描述】:

我正在使用 carrierwavecarrierwave_backgrounder 在 S3 上存储图像,但将图像处理移至单独的工作人员。我的目标是在本地运行时使用 ActiveJob 内联队列立即处理图像,并在生产中使用 Sidekiq。

我正在使用以下代码:

// models/user.rb class User < ActiveRecord::Base ... mount_uploader :cover_photo, CoverPhotoUploader process_in_background :cover_photo ... end

// uploaders/cover_photo_uploader.rb class CoverPhotoUploader < ImageUploader include CarrierWave::MiniMagick include ::CarrierWave::Backgrounder::Delay version :mobile do process resize_to_limit: [380,nil] end end

// config/initializers/carrierwave_backgrounder.rb CarrierWave::Backgrounder.configure do |c| c.backend :active_job, queue: :carrierwave end

当我尝试上传图片时,我得到:

NoMethodError (undefined method 'enqueue_active_job' for CarrierWave::Backgrounder:Module):

我不确定如何进一步调试。当切换backgrounder 以使用sidekiq 作为后端时,一切正常。

【问题讨论】:

    标签: ruby-on-rails amazon-s3 carrierwave rails-activejob


    【解决方案1】:

    我未能将 ActiveJob 传递给 process_in_backgroundas specified here

    浏览这个repo 真的帮助了我。

    【讨论】:

      猜你喜欢
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      相关资源
      最近更新 更多