我无法访问在Rails的控制台ENV变量,而在申请他们的工作。
在.powenv
我有export SENDGRID_PASSWORD="123"
在config/initializers/mail.rb
有:
ActionMailer::Base.smtp_settings = {
:password => ENV['SENDGRID_PASSWORD']
}
所以在控制台当我输入UserMailer.welcome_mail.deliver
有错误“引发ArgumentError:SMTP-AUTH请求但缺少保密短语”。 然而从应用它成功地发送邮件。
我怎样才能让在控制台中可用的ENV变量?
你的Rails控制台不能因为战俘传递从信息访问环境变量.powenv
或.powrc
文件到 Rails ...... Rails不读自己的那些文件。
换句话说,你设置ENV['SENDGRID_PASSWORD']
在变量.powenv
文件,但是当你开始Rails的控制台文件不被感动。
你需要建立before_filter
在你的应用程序控制器,可设置ENV['SENDGRID_PASSWORD']
或者想出另一个,在阅读类似,方式.powenv
从内部文件before_filter
在您的Rails应用程序)。
对于后人,您可以添加这样的事情要么你的environment.rb,development.rb,或取决于你想要什么样的加载顺序的初始化(配置/初始化/ 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