【问题标题】:AWS NameError on Rails 3.2.11 on HerokuHeroku 上 Rails 3.2.11 上的 AWS NameError
【发布时间】:2015-05-13 20:46:36
【问题描述】:

我的 Rails 3.2.11 应用在生产环境中似乎找不到下面的 AmazonS3 类。我可以使用类似 AmazonS3.create() 的东西在 Rails 控制台中调用它,但由于某种原因,当我在 PdfGen.create_pdf 中调用它(在请求期间又从 Rails 控制器调用)时,我得到下面的 NameError。

我不断收到错误

Job PdfGen.create_pdf (id=XX) FAILED(5 次之前尝试)并出现 NameError:未初始化的常量 AmazonS3::AWS

config/application.rb

  config.autoload_paths += %W(#{config.root}/lib})
  config.autoload_paths += Dir["#{config.root}/lib/**/"]  # include all subdirectories

Gemfile.lock

aws-sdk (1.60.1)
      aws-sdk-v1 (= 1.60.1)
    aws-sdk-v1 (1.60.1)

lib/amazon_s3.rb

class AmazonS3
  def self.signed_url(s3_key)
    s3 = AWS::S3.new(:access_key_id => S3Config.access_key_id, :secret_access_key => S3Config.secret_access_key)
    bucket = s3.buckets[S3Config.bucket]
    bucket.objects[s3_key].url_for(:read, :expires => EXPIRES_IN_YEAR_2036)
  end
end

lib/pdf_gen.rb

class PdfGen
  def self.create_pdf
    ##some code to generate a pdf

    AmazonS3.create(amazon_s3_key, response.body)  #store on S3 bucket
  end
end

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 heroku aws-sdk


    【解决方案1】:

    事实证明,这是 gem 本身的问题。我补充说:

    gem 'aws-sdk-v1'
    

    到 Gemfile 而不是 aws-sdk 并且它起作用了。

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 1970-01-01
      • 2015-11-01
      相关资源
      最近更新 更多