Rails: 環境によって分岐するコード


Rails で、環境によって分岐するコードの書き方です。 環境によって出力を変更できれば開発環境のときのみ画面に説明を表示することも可能です。

環境を判別する方法

Rails.env.development?, Rails.env.production?true/false を返すので、それで判定します。

Rails.env とはなんなのか

Rails.envString ではなく、 String を継承したActiveSupport::StringInquirer です。 StringInquirer は次のように使えます。

ところでこの StringInquirer のメソッドはどのように実装されているのでしょうか。

こちらが 時点での ActiveSupport::StringInquirer (master branch) です。

ActiveSupport::StringInquirerStringに細工をしたものだということがわかります。 ここから、 String のもつメソッドはすべて使えることもわかります。