JamesRocky
JamesRocky

Reputation: 721

Rails: my .env file in the root of my rails app isn't loading

I have an .env file in the root of my app. But I'm getting errors like these in the console. Carrierwave works and fog works if I just inpute the the info into but I don't want to do that. This is still in development and not in production mode yet and I'm getting errors.

Why isn't the .env file being picked up?

/config/initializers/carrierwave.rb:9: syntax error, unexpected tCONSTANT, expecting keyword_end (SyntaxError)
  config.fog_directory  = 'ENV['AWS_BUCKET']'

I had assumed that I had to place a aws.rb file into the config/initializers but that produced errors.


.env:

export AWS_BUCKET=jakesfolder
export AWS_ACCESS_KEY_ID=324fsdf454gd...
export AWS_SECRET_ACCESS_KEY=ghrth454g...

CarrierWave.rb:

CarrierWave.configure do |config|
  config.fog_credentials = {
      :provider               => 'AWS',
      :aws_access_key_id      => ENV['AWS_ACCESS_KEY_ID'],
      :aws_secret_access_key  => ENV['AWS_SECRET_ACCESS_KEY'],
      :endpoint               => "https://s3.amazonaws.com",
      :region                 => ENV['AWS_REGION'] 
  }
  config.fog_directory  = 'ENV['AWS_BUCKET']'
end

Gemfile

source 'https://rubygems.org'

gem 'aws-sdk', '< 2.0'
gem 'fog'
gem 'rmagick', '~> 2.15.4'
gem 'carrierwave', '~> 0.10.0'
gem 'font-awesome-rails', '~> 4.4.0.0'
gem 'simple_form'
gem "cocoon"
gem 'devise', '~> 3.5.1'
gem 'bootstrap-sass', '~> 3.3.5'
gem 'rails', '4.2.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc

    group :development do
      gem 'byebug'
      gem 'web-console', '~> 2.0'
      gem 'spring'
      gem 'sqlite3'
    end

    group :production, :staging do
        gem 'pg', '~> 0.18.1'
        gem 'rails_12factor', '~> 0.0.3'
    end       

Upvotes: 0

Views: 297

Answers (1)

K M Rakibul Islam
K M Rakibul Islam

Reputation: 34338

In your CarrierWave.rb file, change:

config.fog_directory  = 'ENV['AWS_BUCKET']'

to:

config.fog_directory  = ENV['AWS_BUCKET']

Your extra ' s are creating problems and you are getting syntax error on that line. So, just remove those and it should work.

Update

Use this configuration for your CarrierWave.rb file:

CarrierWave.configure do |config|
  config.fog_credentials = {
      provider:                'AWS',
      aws_access_key_id:       ENV['AWS_ACCESS_KEY_ID'],
      aws_secret_access_key:   ENV['AWS_SECRET_ACCESS_KEY'],
      endpoint:                "https://s3.amazonaws.com",
      region:                  ENV['AWS_REGION']
  }
  config.fog_directory  = ENV['AWS_BUCKET']
end

And, put all of your export AWS_ACCESS_KEY_ID=324fsdf454gd... in your ~/.bashrc file.

Upvotes: 1

Related Questions