普段Railsアプリケーションの設定、特にconfigディレクトリ内のことなどあまり理解や意識せずにRailsを触っているので、もう少しRailsアプリケーションの設定周りに関して理解出来るように調べます。
Railsには初期化コードの置き場所が4箇所あり、
- config/application.rb
- 環境に応じた設定ファイル
- イニシャライザ
- アフターイニシャライザ
config/application.rb
Railsを実行する前に処理を実行したい場合はapplication.rb内のrequire 'rails/all'より前に書きます。
環境に応じた設定ファイル
2つ目の環境に応じた設定ファイルとはデフォルトでdevelop、test、productionの3つの環境がデフォルトで用意されており、他の環境を追加したい場合は、
database.ymlにデータベースの情報を追記、secrets.ymlに環境変数でシークレットキーを設定、environmentsディレクトリ下にstaging.rbなどを作成する。
イニシャライザ
Railsは、フレームワークの読み込みとすべてのgemの読み込みが完了してから、イニシャライザの読み込みを開始します。イニシャライザとは、アプリケーションのconfig/initializersディレクトリに保存されるRubyファイルのことです。たとえば各部分のオプション設定をイニシャライザに保存しておき、フレームワークとgemがすべて読み込まれた後に適用することができます。
アフターイニシャライザ
アプリケーションの初期化が終わり、かつconfig/initializers以下のイニシャライザが実行された後に実行されます。
最後に
個人的には「config/initializersディレクトリ内のファイルがどのように読み込まれるか?」「config/initializersディレクトリ以外の設定ファイルがどのタイミングで読み込まれるのか」など、厳密に調べたかったのですが、うまく調べられず詳細なことが理解出来ていないので分かったことがあり次第、随時更新したいです。