Rails-Sidekiq错误未初始化的常量

多迪纳斯

谁能告诉我为什么我从Sidekiq收到以下错误:

NameError: uninitialized constant ImageWorker::DIRECT_UPLOAD_URL_FORMAT

app / models / choice.rb

class Choice < ActiveRecord::Base

 #Environment-specific direct upload url verifier screens for malicious posted upload locations.
  DIRECT_UPLOAD_URL_FORMAT = %r{\Ahttps:\/\/s3-us-west-1\.amazonaws\.com\/mybucket\/(?<path>uploads\/.+\/(?<filename>.+))\z}.freeze

  after_commit :queue_processing
  
  protected
  # Queue file processing
    def queue_processing
      ImageWorker.perform_async(id)
    end
end

app / workers / image_worker.rb

 class ImageWorker
   include Sidekiq::Worker
   
   def perform(id)
     choice = Choice.find(id)
     direct_upload_url_data = DIRECT_UPLOAD_URL_FORMAT.match(choice.direct_upload_url)
     s3 = AWS::S3.new

     if choice.post_process_required?
       choice.picture = URI.parse(URI.escape(choice.direct_upload_url))
     else
       paperclip_file_path = "documents/uploads/#{id}/original/#{direct_upload_url_data[:filename]}"
    s3.buckets[Rails.configuration.aws[:bucket]].objects[paperclip_file_path].copy_from(direct_upload_url_data[:path])
  end

  choice.processed = true
  choice.save

  s3.buckets[Rails.configuration.aws[:bucket]].objects[direct_upload_url_data[:path]].delete
  end
 end

任何帮助将是巨大的!

斯多葛

你应该移到下面一行到ImageWorker类:

DIRECT_UPLOAD_URL_FORMAT = %r{\Ahttps:\/\/s3-us-west-1\.amazonaws\.com\/mybucket\/(?<path>uploads\/.+\/(?<filename>.+))\z}.freeze

或者,否则,使用完整的限定路径作为常数DIRECT_UPLOAD_URL_FORMAT

direct_upload_url_data = Choice::DIRECT_UPLOAD_URL_FORMAT.match(choice.direct_upload_url)

目前,您的代码正在尝试定位DIRECT_UPLOAD_URL_FORMAT内部的命名常量ImageWorker,该常量肯定没有初始化,因此也就出错了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Rails的路由错误-未初始化的常量SubscribersController

Rails未初始化的常量名称错误

Rails:路由错误未初始化的常量 RegistrationsController

Rails显示错误“未初始化的常量URI :: Generic”

Ruby on Rails“未初始化的常量”错误

名称错误“未初始化的常量”ruby on rails

NameError:未初始化的常量(rails)

Rails,未初始化的常量Rails入门

在Rails中导入csv文件时获取未初始化的常量Student :: Roo错误

Windows上未初始化的常量Sprockets :: SassCacheStore错误(了解ruby on rails书)

Rails has_many通过:(多对多关系)错误未初始化的常量Group :: Keywords

Rails在命令行中未初始化的常量错误

Rails 5的多个嵌套属性,没有路由错误未初始化的常量站点

Rails 测试错误,NameError:未初始化的常量 User::FILL_IN

Rails 路由错误:带有嵌套资源的未初始化常量

Rails路由“未初始化的常量CoursesController”

未初始化的常量ActionView :: CompiledTemplates :: FB Ruby on Rails

Ruby on Rails 5未初始化的常量ApplicationRecord(NameError)

耙子流产了!未初始化的常量Rails :: SubTestTask

Rails has_many:通过未初始化的常量

Rails:NameError(未初始化的常量UserSerializer)

Rails:NameError:未初始化的常量Bootsnap :: CompileCache :: ISeq

rails 未初始化的常量 Class::News (NameError)

Rspec / Rails:未初始化的常量ActiveSupport :: Autoload(NameError)

未初始化的常量Twilio :: Rest Rails

Rails / Factory Girl:未初始化的常量FactoryGirl(NameError)

rails 5迁移未初始化的常量

Rails CSV导入-未初始化的常量Object :: Points

Rails:未初始化的常量控制器