2016-01-15 1 views
0

Я использую carrierwave и carrierwave_backgrounder для хранения изображений на S3, но переместите обработку изображений отдельному работнику. Моя цель - использовать встроенную очередь ActiveJob для обработки изображений сразу при запуске локально и использовать Sidekiq при производстве.undefined method `enqueue_active_job 'для CarrierWave :: Backgrounder: Module)

Я работаю со следующим кодом:

// 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 в качестве бэкэнд, все работает нормально.

ответ

Смежные вопросы