Переменная окружения в консоли 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 доступными в консоли?

 Martin Petrov10 мая 2012 г., 18:38
Нет, это тоже не работает.
 Mark Sands10 мая 2012 г., 18:50
err Я имел в виду:SENDGRID_PASSWORD=123 rails console
 Mark Sands10 мая 2012 г., 08:21
Вы пытались явно установить его в консоли? SENDGRID_PASSWORD = 123 && UserMailer.welcome_mail.deliver

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

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

пытатьс

. .powenv

тогд

rails c

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

Решение Вопроса

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

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

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

 Manuel Meurer26 июн. 2012 г., 21:34
"(или придумайте другой, похожий способ чтения в файле .powenv из этого before_filter в вашем приложении Rails)" Да, это было бы невероятно ... :) Есть идеи?
 James Chevalier26 июн. 2012 г., 22:01
Я не знаю, хочешь ли ты на самом деле прочитать.powenv file из вашего приложения на Rails, поскольку там могут быть другие вещи, которые вы не хотите / не должны перезагружать каждый раз.
 James Chevalier26 июн. 2012 г., 22:02
Если ваш.powenv файл очень чистый и каждая строка просто устанавливает переменные окружения, тогда вы можете прочитать его построчно внутриbefore_filter.before_filter может выполнить каждую строку, которую он читает из файла. ... Я почти уверен, что с этой идеей происходит много разных ошибок ...
 Manuel Meurer27 июн. 2012 г., 02:16
Да, в .powenv легко читать построчно и выполнять только те строки, которые задают переменные env. К сожалению, они не будут доступны в консоли (или в Rake) таким образом ...

Ваш ответ на вопрос