12

運用サーバーと、新機能を運用に移行する前にテストするステージング サーバーがあります。ステージング サーバーは本番環境とは物理的に異なりますが (URL が異なる別のホスト)、可能な限りそれを模倣します (つまり、同じパッケージ、同じ gem など)。

Rails.env = 'production'両方のサーバーで。

私の問題は、場合によっては、ステージングで本番環境とは異なる動作が必要になることです。

たとえば、新機能により、本番環境のユーザーに大量の電子メールが送信される場合があります。しかし、私がテストしている間は、「テスト」メール アカウントに送信したいと思います。

私がいるサーバーを検出する最良の方法は何ですか?

私はそれをできるだけ「レイリー」にしたいと思っています。

どうもありがとう。

4

2 に答える 2

24

一般に、これが異なる環境を使用する理由です。実際には、ステージング環境は通常、本番環境に非常に近いですが、実際の電子メールなどはオフになっています。

開発/テスト/運用に限定されません。任意の名前の環境で実行できます。config/environments/staging.rb ファイルを作成し、そこに必要な値を設定し、アプリを RAILS_ENV=staging で起動するだけです。これですべてです。そうすれば、実稼働環境をエミュレートできますが、実際に稼働する前に機能をアクティブにしたくない場合は、必要に応じて機能をオンまたはオフにできます。

于 2010-08-12T07:40:49.230 に答える
-1

この回答はあまり役に立ちません。

そのrailsy方法は、環境ごとに構成 (アセット ホスト、データベースなど) のみが異なる環境を用意することです。そのため、ユーザーがダミーまたはテスト用の電子メール アドレスを持つ別のデータベースを使用するのが最も簡単な方法です。

通常、本番環境からクローンを作成している場合は、すべてのユーザーのメールを更新することをお勧めscript/dbconsolescript/consoleますrake.

また、機能を制限/制御したい場合は、ソース管理を通じて、つまり異なるリビジョンをデプロイすることをお勧めします。

于 2010-08-12T07:42:44.910 に答える