2016-07-29 1 views
0

В моем Rails 4 приложения, мой secrets.yml файл содержит следующее:Как хранить переменные среды в системе для secrets.yml для чтения?

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" 

Я думаю, что оба раза он смотрит на пользователя root, а не на процесс nginx/пассажир, который запускает приложение Rails, и поэтому я не думаю, что эти переменные среды доступны для процесса Rails. Следовательно, когда я пытаюсь использовать rake, который ссылается на файл, который смотрит на secrets.yml, он не может читать переменные окружения:

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

 Смежные вопросы

  • Нет связанных вопросов^_^