在Rails中设置测试环境变量,而无需输入源代码

tha

我正在为应用程序使用Twilio,在生产中,我使用heroku的CLI设置了auth令牌。我正在使用sms-spechttps://github.com/monfresh/sms-spec)在本地测试我的应用程序的Twilio集成。我想ENV['TWILIO_AUTH_TOKEN']在测试环境中设置为我的令牌。

每当我进行更改时,我都会使用Guard来自动运行测试,因此我不想每次运行测试时都必须手动设置ENV变量。出于安全原因,我也不想将令牌放入源代码中。

有什么方法可以为本地测试环境设置ENV变量,使其永久存在而不在我的源代码中?我已经花了几个小时研究这个问题,但似乎找不到关于如何执行此操作的很好的解释。任何帮助深表感谢 :)

史蒂夫·克莱因

两种方法:

  1. 使用类似Dotenv链接的宝石这是我在大多数开发应用程序中使用的方法。只需将gem包含在gemfile中,捆绑安装,然后将任何环境变量设置存储在名为的顶级文件中.env重启您的Rails服务器,ENV将被自动加载。非常易于使用和方便。
  2. 如果您在ENV部分上比较灵活,并且正在运行Rails 4.1+,则可以使用config/secrets/ymlRails 4.1发行说明的第2.2节中对此进行了很好的记录因此,在您的情况下,您可以按以下方式进行设置:

    开发:twilio_auth_token:verysecretstring

然后,在初始化程序中ENV['TWILIO_AUTH_TOKEN'],您可以使用而不是引用Rails.application.secrets.twilio_auth_token我自己还没有尝试过,但是它在我的清单上,因为我宁愿使用本机Rails功能,也不愿使用单独的gem。

当然,任何包含您机密的文件都需要小心保护。至少,请确保将其包括在内,.gitignore以使您的秘密不会进入您的代码存储库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章