有些环境变量可以访问,有些则不能?

Some environmental variables accessible, others not?

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

我尝试使用 ENV["STRIPE_TEST_SECRET_KEY"]Rails.application.secrets.stripe_test_secret_key 访问它,但都返回 nil。我收到错误:

No API key provided. Set your API key using "Stripe.api_key = <API-KEY>". You can generate API keys from the Stripe web interface. See https://stripe.com/api for details, or email support@stripe.com if you have any questions.

使用更好的错误 gem。如何让这些在我的应用程序中可用?

您需要在环境 运行 和 Rails 应用程序中设置 STRIPE_TEST_SECRET_KEY

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

您可以像这样在开发中的 CLI 上设置环境变量:

$ STRIPE_TEST_SECRET_KEY=abc123 rails s

如果您正在使用 Rbenv,您可以在项目的根目录中创建一个 .rbenv-vars 文件,其中每行包含一个环境变量,如下所示:

DATABASE_URL=mysql://db_user:db_pass@localhost:3306/dev_db
STRIPE_TEST_SECRET_KEY=abc123
SOME_OTHER_VAR=foo