12 авг. 2013 г., 18:29 от DukelingMartin Petrov

Переменная окружения в консоли Rails и Pow

Я не могу получить доступ к переменным env в консоли Rails, пока они работают в приложении.

В.powenv я имеюexport SENDGRID_PASSWORD="123"

Вconfig/initializers/mail.rb есть:

<code>ActionMailer::Base.smtp_settings = {
  :password => ENV['SENDGRID_PASSWORD']
}
</code>

Так что в консоли, когда я печатаюUserMailer.welcome_mail.deliver произошла ошибка «ArgumentError: SMTP-AUTH запрошен, но отсутствует секретная фраза». Однако из приложения он отправляет почту успешно.

Как сделать переменные env доступными в консоли?

Ответы на вопрос (0)

22 янв. 2014 г., 05:19 от Darren Cheng

rb, development.rb или инициализатор (config / initializers / pow.rb) в зависимости от того, какой порядок загрузки вы хотите:

# Load pow environment variables into development and test environments
if File.exist?(".powenv")
  IO.foreach('.powenv') do |line|
    next if !line.include?('export') || line.blank?
    key, value = line.gsub('export','').split('=',2)
    ENV[key.strip] = value.delete('"\'').strip
  end
end
25 янв. 2013 г., 15:03 от kuboon

пытатьс

. .powenv

тогд

rails c

(точка - это команда для запуска скрипта в текущей среде)

13 июн. 2012 г., 14:00 от James Chevalier

потому что Пау передает информациюо the.powenv или.powrc файл Rails ... Rails не читает эти файлы самостоятельно.

Другими словами, вы устанавливаетеENV['SENDGRID_PASSWORD'] переменная в.powenv file, но этот файл не трогается при запуске консоли Rails.

Тебе нужно настроитьbefore_filter в вашем контроллере приложений, который устанавливаетENV['SENDGRID_PASSWORD'] (или придумать другой, похожий способ чтения в.powenv файл изнутри этогоbefore_filter в вашем приложении Rails).

ВАШ ОТВЕТ НА ВОПРОС