2016-07-29 7 views
0

4アプリケーション、私のsecrets.ymlファイルには、次のものが含まれていますsecrets.ymlが読むために環境変数をシステムに保存する方法は?私のRailsで

admin_name: <%= ENV["ADMIN_NAME"] %> 
    admin_email: <%= ENV["ADMIN_EMAIL"] %> 
    admin_password: <%= ENV["ADMIN_PASSWORD"] %> 

私は.bash_profileに環境変数を追加しようとしなかったものの:

export admin_name="Admin" 
export admin_email="[email protected]" 
export admin_password="admin" 

そして、私はからそれらにアクセスすることができますシェル:

echo $admin_password 
Admin 

とにもrails console productionから:

ENV['admin_name'] 
=> "Admin" 

Railsアプリケーションを実行しているnginx/passengerプロセスではなく、rootユーザーの.bash_profileを見ていると思います。したがって、これらの環境変数がRailsプロセスで使用可能ではないと思います。私はsecrets.ymlを見てファイルを参照されrakeを使用しようとすると、結果的に、それは環境変数を読み取ることができません。

RAILS_ENV=production bundle exec rake db:seed 
seeding Role 
seeding User 
rake aborted! 
ActiveRecord::RecordInvalid: Validation failed: Email can't be blank, Password can't be blank 

は、どのように私はこのような状況を扱うことができますか?

答えて

0

bash変数の命名に大文字と小文字の区別が関係しますか?

エクスポートされる変数は小文字で、あなたの秘密のENVハッシュで参照されるものは大文字です。

+0

質問を書くときには、それは単にタイプミスだったと思います。すべてが正しいケースです。 – Donato

関連する問題