Фигаро Жемчужина на рельсах

Я изо всех сил пытаюсь настроить figaro в своем приложении rails 4.

У меня есть application.yml:

GMAIL_USERNAME_CFR: [email protected]
GMAIL_PW_PROD_CFR: bbb

GMAIL_USERNAME_PROD_WELCOME: [email protected]
GMAIL_PW_PROD_WELCOME: ddd

У меня есть файл production.rb:

config.action_mailer.smtp_settings = {
    address:              'smtp.gmail.com',
    port:                 587,
    domain:               'gmail.com',
    user_name:            Figaro.env.GMAIL_USERNAME_CFR,
    password:             Figaro.env.GMAIL_PW_PROD_CFR,
    authentication:       'plain',
    enable_starttls_auto: true  }

У меня в user.rb настроено 2 почтовика. Когда я не пользуюсь фигаро, а просто прописываю логин и пароль прямо в файле production.rb - эти почтовики работают. Используя Figaro, я получаю ошибку аутентификации.

Мои методы user.rb:

 def send_admin_mail
         puts "the value is:" + Figaro.env.GMAIL_USERNAME_CFR.to_s
         AdminMailer.new_user_waiting_for_approval(self).deliver
       end

       def send_user_welcome_mail

         AdminMailer.new_user_waiting_for_access(self).deliver
       end

Вы можете видеть, что я пытался выяснить проблему со строкой puts в первом методе выше. Журнал помещает «значение есть», а затем не помещает имя пользователя в виде строки.

Мои почтовики:

def new_user_waiting_for_approval(user)
    @user = user
    mail(to: "[email protected]", from: Figaro.env.GMAIL_USERNAME_CFR, 
    subject: "Registration Request #{user.first_name} #{user.last_name} <#{user.email}>")
  end

  def new_user_waiting_for_access(user)
    @user = user
    mail(to: user.email, from: "[email protected]", subject: "Welcome, #{user.first_name}")
  end

Вы можете видеть выше, что я пытался использовать figaro в первом почтовом ящике и адрес электронной почты во втором письме. Ни один из вариантов не работает. Я также пробовал ENV [] вместо Figaro.env перед именем пользователя и паролем.

Моя консоль правильно отображает детали, когда я конвертирую их в строки, за исключением того, что они отображаются между "". Я предполагаю, что это не имеет значения.

Может ли кто-нибудь увидеть, что мне нужно сделать, чтобы исправить мою настройку figaro?

Спасибо


person Mel    schedule 08.01.2015    source источник


Ответы (2)


Хорошо, моя проблема заключалась в том, что я не загрузил переменные среды из моего application.yml в Heroku. Поскольку файл указан в .gitignore, он не будет зафиксирован на GitHub.

Чтобы загрузить переменные среды в Heroku, выполните figaro heroku:set -e production. Как описано здесь.

person Mel    schedule 09.01.2015

Вам не нужно вызывать Figaro.env, чтобы он прочитал ваш файл application.yml. Просто возьмите переменные среды, используя стандартные рельсы.

Например, изменить:

Figaro.env.GMAIL_USERNAME_CFR

To:

ENV['GMAIL_USERNAME_CFR']

Измените все экземпляры Figaro.env на этот формат.

Кроме того, задайте для переменных в файле application.yml строки.

GMAIL_USERNAME_CFR: "[email protected]"
GMAIL_PW_PROD_CFR: "bbb"

GMAIL_USERNAME_PROD_WELCOME: "[email protected]"
GMAIL_PW_PROD_WELCOME: "ddd"
person miler350    schedule 08.01.2015
comment
Привет, Милер, боюсь, это не сработало. Я все еще получаю ошибку аутентификации при вызове admin_mailer. Я не получаю эту ошибку, когда ввожу пароль и имя пользователя непосредственно в production.rb. Это сводит меня с ума. В любом случае спасибо за попытку помочь. - person Mel; 09.01.2015