コード日進月歩

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

Rubyで環境変数を取るときはENVオブジェクトを使えばとれる

当たり前の話だけどそれにちょっとトリビアをつける

環境

$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin18]
$ bin/rails -v
Rails 5.2.2

使い方

ENV[{{キー名}}] で値が取れる

$ HOGE=huge irb

と起動すれば

ENV["HOGE"]
#=> "huge"

という形で取得できる

注意点

ENVはキーも値もすべて文字列

数字を指定しても、すべて文字列になってしまうので注意

$ ATAI=120 irb
ENV["ATAI"]
#=> "120"

という感じに文字列としての数値になる。

HashっぽいことはできるがRailsの場合ActiveSupportは未対応

has_key?clear のようなHashのもつメソッドはあるので Railsの場合 sliceexcept のようなメソッドが使えそうな感じではあるが、現行だとない。

参考