gpt4 book ai didi

ruby-on-rails - 在不输入源代码的情况下在rails中设置测试环境变量

转载 作者:行者123 更新时间:2023-11-28 21:28:47 25 4
gpt4 key购买 nike

我将 Twilio 用于应用程序,在生产环境中,我使用 heroku 的 CLI 设置了身份验证 token 。我正在使用 sms-spec ( https://github.com/monfresh/sms-spec ) 在本地测试我的应用程序的 Twilio 集成。我想在测试环境中将 ENV['TWILIO_AUTH_TOKEN'] 设置为我的 token 。

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

有没有一种方法可以为我的本地测试环境设置 ENV 变量,使其永久存在,而不是在我的源代码中?我花了几个小时研究这个,但似乎找不到如何做到这一点的好解释。非常感谢任何帮助:)

最佳答案

两种方法:

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

    发展: twilio_auth_token:非常 secret 的字符串

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

当然,任何包含您的 secret 的文件都需要小心保护。至少,确保您包含在 .gitignore 中,这样您的 secret 就不会进入您的代码存储库。

关于ruby-on-rails - 在不输入源代码的情况下在rails中设置测试环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31196212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com