gpt4 book ai didi

ruby-on-rails - 生产服务器无法识别 Figaro gem 设置的环境变量

转载 作者:行者123 更新时间:2023-12-03 16:07:20 25 4
gpt4 key购买 nike

我在使用 Figaro gem 设置的外部文件 (config/application.yml) 中设置了我的 Sendgrid 密码。这在我的本地机器上运行良好,但在我的服务器上我收到一个错误,提示没有设置密码:

ArgumentError (SMTP-AUTH requested but missing secret phrase)

当我将 Sendgrid 配置更改为纯文本密码时,它工作正常,因此我假设 Rails 无法识别环境变量。奇怪的是,当我进入 rails console production并执行 puts ENV["SENDGRID_PASSWORD"]它工作正常。

有任何想法吗?

这是我的 Sendgrid 配置:
config.action_mailer.smtp_settings = {
:address => "smtp.sendgrid.net",
:port => 587,
:user_name => "chrislawrence",
:password => ENV['SENDGRID_PASSWORD'],
:domain => "lakecinema.net.au",
:authentication => :plain,
:enable_starttls_auto => true
}

最佳答案

我遇到了同样的问题,无法弄清楚为什么 Rails 认为我没有给它密码。原来我在定义 config.action_mailer.smtp_settings在一个文件中,然后在另一个文件中向它添加键值组合。问题是我使用的是 merge而不是 merge!所以我的密码从未进入 smtp_settings 而是进入临时哈希。

从这次经历中,我了解到您收到的错误消息是 ActionMailer 说“密码在哪里?”的方式。

所以我的猜测是你的问题是 Environment variable in Rails console and Pow 的倒数,其中环境变量在 Rails 服务器上工作,但不在 Rails 控制台中。尝试执行:

$ echo "$SENDGRID_PASSWORD"

看看你得到了什么。我有一种感觉,Env 变量没有设置,而是它只是 Rails 控制台中的一个局部变量。

关于ruby-on-rails - 生产服务器无法识别 Figaro gem 设置的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13080445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com