gem: configについて
★gem: configを使うことで便利に定数管理ができる!
- 環境ごとに異なる定数を管理するため
- 設定値をconfigフォルダ以下に一元管理することでメンテナンスが楽になる
- 環境ごとに値が変わらない場合は一つ上の階層の
config/settings.yml
ファイルに記述すると良い
gem 'config'
bundle install --path vendor/bundle
$ bundle exec rails g config:install Running via Spring preloader in process 2577 create config/initializers/config.rb create config/settings.yml create config/settings.local.yml create config/settings create config/settings/development.yml create config/settings/production.yml create config/settings/test.yml append .gitignore
.gitignoreに自動で追加されるファイル
config/settings.local.yml config/settings/.local.yml config/environments/.local.yml
基本的にはconfig/settings.yml(全ての環境で利用する定数を定義)に記載する 環境ごとに定数を定義する場合はそれぞれのファイルへ .gitignoreに追加されているsetting.local.ymlには共有したくないものを記載する
共有したくないものって一体なんだろう?🤔
使い方例
- 環境ごとにhost情報を分けたい時など便利
# config/settings/development.yml host: 'localhost:3000'
# config/environments/development.rb config.action_mailer.delivery_method = :letter_opener_web config.action_mailer.default_url_options = { host: Settings.host }
翻訳の呼び出しと似ていると思った。
各環境ごとに設定されたsettings配下のファイルの設定された定数hostが適用される的なことだと思う。
本番環境にデプロイする際は、config/settings/production.ymlに取得したドメイン名を設定する。
★デプロイ(deploy)…(兵士などを)配備する、展開する
≒作ったプログラムを然るべき場所に置き、あれこれ設定して使える状態にすること
みなさんがプログラムを作る目的は、プログラムを作ることではありません。プログラムを動かすことです。つまり、プログラムが完成した時点では、まだ途中なのです。完成したプログラムがお仕事できる状態になって、はじめて作業完了です。 この、完成したプログラムを動かせる状態にするのが(システム開発の話で出てくる)デプロイです。 https://wa3.i-3-i.info/word16767.html
参考にしたサイト
Rails 定数を管理するsettings.yml・環境ごとの定数管理の方法 - Qiita
【Rails】「config」gemを使って定数管理をおこなう方法 | vdeep