键在那里,但我仍然得到'fetch':找不到键:“S3_BUCKET_NAME”(KeyError)

时间:2017-03-23 14:30:51

标签: ruby-on-rails heroku amazon-s3 paperclip

我知道有很多这样的问题,但我试图跟着每一个没有运气。我忽视了一些容易出错的错误。

我正在尝试按照Heroku guide设置S3和Paperclip,并按照此Words and Code指南设置本地测试。每当我尝试生成数据库迁移时,我都会收到错误:

config/environments/development.rb:62:in fetch': key not found: "S3_BUCKET_NAME" (KeyError)

这些是我的文件完全替换了键:

development.rb

config.paperlip_defaults = {
    storage: :s3,
    s3_credientials: {
      bucket: ENV.fetch('S3_BUCKET_NAME'),
      access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
      secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
      s3_region: ENV.fetch('AWS_REGION')
    }
  }

.ENV

S3_BUCKET_NAME=some-bucket-name
AWS_ACCESS_KEY_ID=AAAAAABBBBBCCCCCDDDD
AWS_SECRET_ACCESS_KEY=AAAAABBBBBCCCCCDDDDDEEEEE
AWS_REGION=us-east-1

我错过了什么?

编辑:我已尝试按照this question中的建议将ENV值添加到~/.bashrc~/.bash_profle,并出现相同的错误。

1 个答案:

答案 0 :(得分:0)

对于宝石来说,答案很简单。

我将dotenv-rails添加到我的gemfile

group :development, :test do
  gem 'dotenv-rails'
end

bundle install很高兴。

我想我从未意识到保存在根目录中的.env文件没有自动加载。