我不能在Rails控制台中访问环境变量,而在应用程序中它们可以工作。
在.powenv
中,我有export SENDGRID_PASSWORD="123"
在config/initializers/mail.rb
中有:
ActionMailer::Base.smtp_settings = {
:password => ENV['SENDGRID_PASSWORD']
}
因此,在控制台中,当我输入UserMailer.welcome_mail.deliver
时,会出现一个错误'ArgumentError: SMTP-AUTH requested but secret phrase‘。但是,它会从应用程序成功发送邮件。
如何让环境变量在控制台可用?
发布于 2012-06-13 23:00:58
您的Rails控制台无法访问环境变量,因为Pow将信息从 .powenv
或.powrc
文件传递到 Rails ...Rails不会自己读取这些文件。
换句话说,您在.powenv
文件中设置了ENV['SENDGRID_PASSWORD']
变量,但是当您启动Rails控制台时,该文件并没有受到影响。
您需要在应用程序控制器中设置一个before_filter
来设置ENV['SENDGRID_PASSWORD']
(或者想出另一种类似的方法从Rails应用程序的before_filter
中读取.powenv
文件)。
发布于 2013-01-26 00:03:01
试一试
. .powenv
然后
rails c
(dot是在当前环境下运行脚本的命令)
https://stackoverflow.com/questions/10527372
复制相似问题