工头没有得到环境变量

时间:2014-06-27 17:10:49

标签: ruby-on-rails ruby devise foreman

我在rails应用程序中使用foreman作为环境变量。在我的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

因此,如果我运行#34; foreman start",我收到以下消息:

Net::SMTPAuthenticationError in Devise::ConfirmationsController#create 530-5.5.1 Authentication Required

但是,如果我评论与环境变量相关的行并取消注释那些现在在development.rb中注释的行,那么一切正常。

所以我想问题是工头没有正确获取环境变量。 我使用带分支的git,忽略了Procfile和.env

我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

看起来没有设置环境变量。你用哪种方法做到这一点? Here's an article that explains several methods.

尝试在命令行上手动设置它们:

export GMAIL_USERNAME="user@gmail.com"
export GMAIL_PASSWORD="password"

然后在命令提示符下键入env以验证它们是否已设置。然后给它一个旋转。