Rails:将分期与生产区分开来

kik*_*ito 11 ruby-on-rails staging

我有一个生产服务器和一个临时服务器,在将它们投入生产之前测试新功能.登台服务器在物理上与生产服务器不同(具有不同URL的不同主机),但它尽可能地模仿它(即相同的包,相同的宝石等).

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

我的问题是,在某些情况下,我需要不同于生产中的不同行为.

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

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

我想尽可能地"raily".

非常感谢.

Chr*_*ald 24

通常,这就是您使用不同环境的原因.实际上,暂存环境通常非常接近生产环境,但实际的电子邮件已关闭.

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