#ruby-on-rails #ruby #devise #foreman
#ruby-on-rails #ruby #разработать #мастер
Вопрос:
Я использую foreman для переменных среды в приложении rails. В моем config/enviroments/development.rb у меня есть следующий код:
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: "587",
domain: "gmail.com",
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV['GMAIL_USERNAME'],
password: ENV['GMAIL_PASSWORD']
#user_name: "user@gmail.com",
#password: "password"
}
и мой файл .env выглядит следующим образом:
GMAIL_USERNAME=user@gmail.com
GMAIL_PASSWORD=password
и мой Procfile:
web: bundle exec rvmsudo rails s -p 80
Итак, если я запускаю «запуск бригадира», я получаю следующее сообщение:
Net::SMTPAuthenticationError in Devise::ConfirmationsController#create
530-5.5.1 Authentication Required
Однако, если я прокомментирую строки, касающиеся переменных среды, и раскомментирую те, которые прокомментированы прямо сейчас в development.rb, все работает нормально.
Итак, я полагаю, проблема в том, что форман неправильно получает переменные среды. Я использую git с ветвями и игнорирую как Procfile, так и .env
Что-то не так с моим кодом?
Ответ №1:
Похоже, переменные среды не устанавливаются. Какой метод вы используете для этого? Вот статья, в которой объясняется несколько методов.
Попробуйте установить их вручную в командной строке таким образом:
export GMAIL_USERNAME="user@gmail.com"
export GMAIL_PASSWORD="password"
Затем введите env
в командной строке, чтобы убедиться, что они установлены. Затем дайте ему кружение.