我有一个生产服务器和一个临时服务器,在将新功能转移到生产之前,在其中测试新功能。临时服务器在物理上与生产服务器不同(不同的主机具有不同的 url),但它尽可能地模仿它(即相同的包、相同的 gem 等)。

两台服务器上的 Rails.env = 'production'

我的问题是,在某些情况下,我在登台时需要与在生产中不同的行为。

例如,一个新功能可能会在生产中向用户发送大量电子邮件;但是在我测试它时,我宁愿将它们发送到“测试”电子邮件帐户。

检测我所在服务器的最佳方法是什么?

我想尽可能“快速”地做到这一点。

非常感谢。

最佳答案

通常,这就是您使用不同环境的原因。实际上,暂存环境通常非常接近生产环境,但会关闭诸如真实电子邮件之类的功能。

您不仅限于开发/测试/生产 - 您可以在任意命名的环境下运行。只需创建一个 config/environments/staging.rb 文件,在其中设置您想要的值,然后使用 RAILS_ENV=staging 启动您的应用程序 - 这就是它的全部内容。这样您就可以模拟您的生产环境,但是当您不希望它们在实际上线之前处于事件状态时,可以根据需要打开或关闭功能。

关于ruby-on-rails - rails : differentiating staging from production,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3465575/

10-13 09:32