Rails3.1 の initializers でコンフィグファイルを読み込む

config/app_config.yml という名前でファイルを作って config/initializers/app_config.rb から呼び出す時に

APP_CONFIG = YAML.load(File.open(Rails.root + '/config/app_config.yml'))

で読めるかなと思ったのですが、うまくいかない模様。Rails.root は String クラスだと思っていたのですが、実際には Pathname クラスのオブジェクトのようです。

http://corelib.rubyonrails.org/classes/Pathname.html

このようなケースでは、一旦ファイルパスを作成してから開くとうまくいきます。

config_file = File.join(Rails.root, 'config', 'app_config.yml')
APP_CONFIG = YAML.load(File.open(config_file))

参考までに app_config.yml が以下のようになっている場合

:hoge:
  :fuga: "piyo"

上記のコンフィグをロードすると

APP_CONFIG[:hoge][:fuga]

と指定すると "piyo" という値を得る事ができます。