在Rails 7中使用Figaro gem无法访问application.yml凭证的问题
解决Figaro密钥无法在Rails控制台访问的问题
核心原因及对应解决方案
1. 控制台环境与配置环境不匹配
Figaro仅会加载当前Rails运行环境对应的配置项,你的application.yml里仅配置了production环境的密钥,若控制台默认以development环境启动,自然无法读取到这些值。
- 启动production环境的控制台:
rails console production
进入控制台后直接调用以下代码即可获取密钥:
ENV['stripe_api_key'] ENV['stripe_publishable_key']
2. 同步密钥到目标环境配置
如果需要在development环境也使用密钥(注意:生产环境密钥请勿在开发环境滥用,建议替换为测试密钥),可将配置复制到development节点下:
development: stripe_api_key: sk_test_xxxxxx # 替换为测试密钥 stripe_publishable_key: pk_test_xxxxxx production: stripe_api_key: sk_live_EeHnL644i6zo4Iyq4v1KdV9H stripe_publishable_key: pk_live_9lcthxpSIHbGwmdO941O1XVU
保存文件后重启控制台,即可在对应环境下访问密钥。
3. 检查Figaro安装配置完整性
确保已完成Figaro的初始化配置:
- 确认
config/application.rb中添加了:
Figaro.load
- 若使用Rails 7,需确保已执行
figaro install命令生成必要配置文件,且各环境配置文件(config/environments/*.rb)中未屏蔽Figaro的加载逻辑。
内容的提问来源于stack exchange,提问作者Rahul Gupta
相关产品推荐
相关产品推荐

