6
4

【Rails】gem configで定数管理を行う手順

Last updated at Posted at 2023-12-13

はじめに

CORSの設定でこのようにドメインをベタ書きしている点が気になったので、gem configを用いて定数管理する方法をまとめました。

config/initializers/cors.rb
Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins 'http://localhost:8000'

    resource "*",
             headers: :any,
             methods: [:get, :post, :put, :patch, :delete, :options, :head]
  end
end

導入手順

Gemfile
gem 'config'
bundle install

generate コマンドを実行すると、config配下に環境別で定数管理できるファイルが作成されます。

rails g config:install
config/initializers/config.rb
config/settings.yml
config/settings.local.yml
config/settings/development.yml
config/settings/production.yml
config/settings/test.yml
ファイル名 役割
config/initializers/config.rb 全体設定ファイル
config/settings.yml すべての環境で利用する定数を定義
config/settings.local.yml ローカル環境で利用する定数を定義
config/settings/development.yml 開発環境のみで利用する定数を定義
config/settings/production.yml 本番環境のみで利用する定数を定義
config/settings/test.yml テスト環境のみで利用する定数を定義

使用方法

yml形式で書くことができ、Settingsはじまりで定数を呼び出すことができます。

config/settings/development.yml
front_domain: http://localhost:8000
config/settings/test.yml
front_domain: http://localhost:8000
config/settings/production.yml
front_domain: https://sampleapp.com

このように各環境に同じキーで値を設定することで、呼び出しは1回で済みます。

config/initializers/cors.rb
Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    #origins 'http://localhost:8000'
     origins Settings.front_domain

    resource "*",
             headers: :any,
             methods: [:get, :post, :put, :patch, :delete, :options, :head]
  end
end
6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4