Ruby on rails 一些环境变量是可访问的,而另一些是不可访问的?

Ruby on rails 一些环境变量是可访问的,而另一些是不可访问的?,ruby-on-rails,environment-variables,Ruby On Rails,Environment Variables,我有一个rails应用程序,试图在控制器内部使用环境变量(API键),但失败了。调试显示它的值为零。奇怪的是,该文件中的其他密钥都是可访问的,所以我真的不明白为什么。它们都在我的secrets.yml文件中 我尝试过使用ENV[“STRIPE\u TEST\u SECRET\u KEY”]和Rails.application.secrets.STRIPE\u TEST\u SECRET\u KEY访问它,结果都是零。我得到一个错误: 未提供API密钥。使用“Stripe.API_key=”设置A

我有一个rails应用程序,试图在控制器内部使用环境变量(API键),但失败了。调试显示它的值为零。奇怪的是,该文件中的其他密钥都是可访问的,所以我真的不明白为什么。它们都在我的secrets.yml文件中

我尝试过使用
ENV[“STRIPE\u TEST\u SECRET\u KEY”]
Rails.application.secrets.STRIPE\u TEST\u SECRET\u KEY
访问它,结果都是零。我得到一个错误:

未提供API密钥。使用“Stripe.API_key=”设置API密钥。您可以从Stripe web界面生成API密钥。看见https://stripe.com/api 如需了解详细信息,请发送电子邮件support@stripe.com如果您有任何问题。


使用更好的错误。如何在我的应用程序中提供这些功能?

您需要在运行Rails应用程序的环境中设置
STRIPE\u TEST\u SECRET\u KEY

查看,它使覆盖环境变量变得非常容易


在开发过程中,可以在CLI上设置环境变量,如下所示:

$STRIPE\u TEST\u SECRET\u KEY=abc123 rails
如果使用的是Rbenv,则可以在项目根目录中创建一个
.Rbenv vars
文件,该文件每行包含一个env var,如下所示:

DATABASE\u URL=mysql://db_user:db_pass@本地主机:3306/dev_db
条带测试密钥=abc123
一些其他变量=foo

我的
STRIPE\u LIVE\u SECRET\u KEY
是可读的,我的
STRIPE\u LIVE\u publish\u KEY
也是可读的……一定是我对它们做了些什么,使它们可以使用,而不用宝石。是否有终端命令来完成此任务?您可以在命令行上设置env vars,用于在开发中启动rails服务器。我会把它加到我的答案上。看起来很熟悉!!让我试一试!就这样!!我已经在谷歌上搜索了一个半小时,非常感谢!!!没问题,很乐意帮忙!