はじめに
本記事は、プログラミング初学者、学習を進めていて疑問に思った点について調べた結果を備忘録も兼ねてまとめたものです。
そのため、記事の内容に誤りが含まれている可能性があります。ご容赦ください。
間違いを見つけた方は、お手数ですが、ご指摘いただけますと幸いです。
ENV[]
とENV.fetch() {}
の違い
ENV[]
とENV.fetch() {}
の違いは指定した環境変数が存在しない場合にnil
を返すかデフォルト値を返すかの違いです。
例えば、以下の場合には、RAILS_MAX_THREADS
、DB_USER_NAME
、DB_USER_PASSWORD
が存在しない場合にはnilとなります。
detabase.yml
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV["RAILS_MAX_THREADS"] %>
username: <%= ENV["DB_USER_NAME"] %>
password: <%= ENV["DB_USER_PASSWORD"] %>
host: db
以下のように記述するとRAILS_MAX_THREADS
、DB_USER_NAME
、DB_USER_PASSWORD
が存在しない場合には{}内に記述したデフォルト値となります。
detabase.yml
default: &default
adapter: mysql2
encoding: utf8mb4
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: <%= ENV.fetch("DB_USER_NAME") { root } %>
password: <%= ENV.fetch("DB_USER_PASSWORD") { rootpass } %>
host: db