Railsアプリケーションで、開発環境と本番環境の差異で分岐処理

はてなブックマーク - Railsアプリケーションで、開発環境と本番環境の差異で分岐処理
LINEで送る
Pocket

はじめに

Railsアプリケーションで、開発環境と本番環境の設定によっては、所々、構成が違ったりする場合があります。

Dockerで開発環境と本番環境(検証環境も)一括に統一する手段もありますが、パフォーマンスの理由で、そうしないケースがまだ多いです。

具体的に、開発環境で使っているファイルのパスと本番環境(あるいは開発環境)で使っているファイルパスが異なる場合があります。(設定や、セキュリティーの理由で)

そうすると、Rails側では、毎回開発作業が終わって、サーバにDeployするときに、手動で、パスを変更するなのは、非効率的ですし、危険ですし、そもそもワークフローとしては、よくありません。

ここで、環境によって、Railsの中の処理ロジックを変える簡単な方法を紹介します。

rails_env

 

Railsアプリケーションで、開発環境と本番環境の差異で分岐処理

Railsでは、プログラムの中に簡単に「環境」を取得する方法があります。

Rails には基本3つの環境が用意されています。

  • テスト環境 (test)
  • 開発環境 (development)
  • 本番環境 (production)

それは、下記のような書き方です。

 

また、stagingなどを別途追加することも可能です。例えば、今回こ今参画したプロジェクトでは、「local」(ローカル開発環境)など適宜環境を追加しました。

例えば、railsのコントローラーに下記のようなロジックが書けます。(@your_file_pathはファイルのパスを格納する変数です。)

または、Railsのテンプレートの場合は

下記のように記述することができます。

終わりに

如何ですか?意外と簡単でしょう?

分からないと、結構悩むところですが、知っていれば、すぐ開発環境と本番環境の差異で分岐処理のロジックを書けますね。それによって、開発中のファイルパス、検証きのファイルパス、本番環境のパスそれぞれ、差異が気にせずに、ビジネスロジックの処理に集中できますね。

また、ワークフローも開発機から、検証機、本番機の一方通行で完成できます。

では、また! Happy coding!

 

はてなブックマーク - Railsアプリケーションで、開発環境と本番環境の差異で分岐処理
LINEで送る
Pocket

Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close