Ruby on Railsの環境の確認と設定の方法
Ruby on Railsの環境の確認方法と設定方法を知ったので、ほぼ自分用のメモとしてブログ記事にしておきます。
Rubyの経験も浅い僕ですが、最近はRailsを触っております。当然Railsに関しては素人なので、まだまだわからないことも多いのですが、APIを実装し、サーバを起動して、curlコマンドでAPIへのアクセスを再現してテストをする、というところをなんとか頑張っている最中です。
勉強のために一冊本を買ったので、実作業だけでなく、きちんと勉強も進めていきたいところです。
さて、本題に入ります。Railsの環境についてです。
自分が今実装を進めているRailsアプリケーションには、production、development、testの3種類の環境があります。
調べてみると、productionは本番環境、developmentが開発環境、testがテストを実行するとき用の環境、だそうです。
そこで、productionに本番で使用する定数を、developmentとtestに本番では使用しないテスト用の定数を、それぞれ設定しました。具体的には以下のような感じです。
config/settings/production.yml
hogehoge: fugafuga: 'http://production.com'
config/settings/development.yml, config/settings/test.yml
hogehoge: fugafuga: 'http://development.com'
これにて一件落着、と言いたいところですが、今自分がどの環境でAPIを動かしているのか確認したいですし、どの環境でAPIを動かすのか自分で設定したいと思うのが人間です。僕も人間なのでそうでした。
そこで、Railsの環境の確認方法と設定方法を調べてみました。
まず、環境の確認方法です。
参考:RailsGuides Railsアプリケーションを設定する
こちらによると、Railsが実行される環境を定義しているのはENV["RAILS_ENV"]だそうです。
$ bundle exec rails s
としてサーバを起動した場合、ソースコード中のputsなどはサーバのコンソールに表示されるため、ソースコード中に
puts ENV["RAILS_ENV"]
としてあげれば、サーバのコンソールにdevelopmentなどと表示されます。
もっとスマートな方法がありそうですが、とりあえず環境の確認方法でした。
次に、環境の設定方法です。
参考:RailsGuides Railsのコマンドラインツール
こちらによると、サーバを起動する際に、オプションを付けることで、環境の設定ができるようです。僕も試してみました。
$ bundle exec rails s -e test
このようにサーバを起動し、先ほどの方法で環境を確認すると、きちんとtest環境になっていることが確認できました。
また、何もつけないでサーバを起動すると、development環境になるそうです。
余談ですが、production環境でサーバを起動して、同様の方法で環境を確認しようとしても、エラーが出てしまいます。
原因となっている箇所とその理由はなんとなくわかりますが、まだ理解は不十分なので、これ以上深く掘り下げるのはやめておこうと思います。
以上、Ruby on Railsの環境の環境の確認方法と設定方法でした。