Railsのconfigの読み込まれる順番を確認してみる

RailsでHello, world!を表示してみる
の続き

Railsのconfigの読み込まれる順番を確認してみる。

configの中身の確認

現状、configの中身は下記の通り。

$ tree config/
config/
├── application.rb
├── boot.rb
├── database.yml
├── environment.rb
├── environments
│  ├── development.rb
│  ├── production.rb
│  └── test.rb
├── initializers
│  ├── backtrace_silencers.rb
│  ├── filter_parameter_logging.rb
│  ├── inflections.rb
│  ├── mime_types.rb
│  ├── secret_token.rb
│  ├── session_store.rb
│  └── wrap_parameters.rb
├── locales
│  └── en.yml
└── routes.rb

configファイルにログを仕込む

configのrbファイルの先頭に、下記のような感じで
配列にファイル名を設定する処理を埋め込む。

$ vi config/application.rb
$log=[] if !defined?($log)
$log.push("application.rb")
・・・

同様の修正を下記のファイルにも行う。

$ vi config/boot.rb
$ vi config/environment.rb
$ vi config/environments/development.rb
$ vi config/initializers/backtrace_silencers.rb
$ vi config/initializers/filter_parameter_logging.rb
$ vi config/initializers/inflections.rb
$ vi config/initializers/mime_types.rb
$ vi config/initializers/secret_token.rb
$ vi config/initializers/session_store.rb
$ vi config/initializers/wrap_parameters.rb
$ vi config/routes.rb

確認

$log変数を出力するよう修正する

$ vi app/controllers/sample_controller.rb
class SampleController < ApplicationController
  def index
    render :json => $log
  end
end

再起動して反映する。

$ sudo service httpd restart

ブラウザからアクセスすると、下記のように表示される。

[
"environment.rb",
"application.rb",
"boot.rb",
"environments/development.rb",
"initializers/backtrace_silencers.rb",
"initializers/filter_parameter_logging.rb",
"initializers/inflections.rb",
"initializers/mime_types.rb",
"initializers/secret_token.rb",
"initializers/session_store.rb",
"initializers/wrap_parameters.rb",
"routes.rb"
]