我有一个rails应用程序,并且我试图在控制器内部使用环境变量(API密钥)并且它失败了。调试显示它的值为零。奇怪的是,该文件中的其他键是可访问的,所以我并不真正理解为什么。它们都在我的secretts.yml文件中。
我尝试使用ENV["STRIPE_TEST_SECRET_KEY"]
和Rails.application.secrets.stripe_test_secret_key
访问它,两者都回来了。我收到错误:
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。如何在我的应用程序中提供这些内容?
答案 0 :(得分:1)
您需要在运行Rails应用程序的环境中设置STRIPE_TEST_SECRET_KEY
。
查看Choices gem,它可以轻松覆盖环境。
您可以在开发中的CLI上设置env vars,如下所示:
$ STRIPE_TEST_SECRET_KEY=abc123 rails s
如果您使用的是Rbenv,则可以在项目的根目录中创建一个.rbenv-vars
文件,其中每行包含一个env var,如下所示:
DATABASE_URL=mysql://db_user:db_pass@localhost:3306/dev_db
STRIPE_TEST_SECRET_KEY=abc123
SOME_OTHER_VAR=foo