コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

Rails.env はどうやって導きだされるのかざっくり調べる

該当コードを調べてみるシリーズ

環境

$ bin/rails -v
Rails 5.2.2

該当コード

rails/railties/lib/rails.rbここらへん

# Returns the current Rails environment.
#
#   Rails.env # => "development"
#   Rails.env.development? # => true
#   Rails.env.production? # => false
def env
  @_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"].presence || ENV["RACK_ENV"].presence || "development")
end

読み取れること

  • production? などができるように ActiveSupport::StringInquirer.new をしている
  • 値に関してはいずれかの値を取る
    • 環境変数 RAILS_ENV を見ている
    • 上記が存在しない場合は RACK_ENV を見ている
    • それでも何もない場合は development

関連リンク