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

时间:2015-09-06 04:57:53

标签: ruby-on-rails environment-variables

我有一个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。如何在我的应用程序中提供这些内容?

1 个答案:

答案 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