http://urgetopunt.com/rails/2009/09/12/yaml-config-with-erb.html

基本的なymlロードはこんな感じだが

# config/initializers/load_config.rb
APP_CONFIG = YAML.load_file("#{Rails.root}/config/app_config.yml")[Rails.env]

以下のようにERB.newにして渡せば使えるようになる。

# config/initializers/load_config.rb
APP_CONFIG = YAML.load(ERB.new(File.read("#{Rails.root}/config/app_config.yml")).result)[Rails.env]

yamlを扱うときの注意点

railsだけ使ってると ymlから値を取得するのにsymbolを使ったりするが、yamlのsyntaxにはsymbolとstringを区分できるようになっている

# symbol
:test:
  key1: yourkey

# string
test:
  key1: yourkey

なので、キーを全部symbolで取得したいならactivesupportのsymbolize_keysを使う

しかし、ActiveRecordをstand aloneで使うとき

database.ymlを手動で読み込ませる時があるが、 このときにはsymbolize_keysは使わない。 使うと逆にエラー

ActiveRecord::Base.configurations = YAML::load(IO.read('database.yml'))

参考

results matching ""

    No results matching ""