環境毎に異なる定数を使うのは自前でやっても難しくないけど、一般的な方法の方が保守性が上がるので、一般的と思われるConfig(gem)を導入しました。
Rails6に入れましたが、昔からあまり変わってなさそう。
難しくないし、他のサイトの方が詳しいので、簡単にメモ。

Config(gem)インストール

Gemfileの最終行に追加

# Use Config
gem 'config'
$ bundle install
$ rails g config:install
      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

【参考】ここまでのコミット内容
https://dev.azure.com/nightonly/rails-app-origin/_git/rails-app-origin/commit/88107e5bc8bd606c74281f6b1a93fa1ef92fbecc

使い方

config/settings/development.yml
config/settings/production.yml
config/settings/test.yml
上記にyaml形式で環境毎の内容を書けばOK

base_domain: localhost:3000
hoge:
  foo: bar

viewでの表示ならこんな感じでOK。controllerやRSpecからも同様に呼べる。
app/views/???/???.html.erb

<%= Settings['base_domain'] %>
<%= Settings['hoge']['foo'] %>

config/settings.yml ←共通の定数はここに。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です