В моем 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
Как я могу справиться с этой ситуацией?
Я думаю, что это была опечатка при написании вопроса. Все правильно. – Donato