Railsで環境ごとの設定をYAMLから読み込む


Ruby on Railsで環境ごとの設定をYAMLに読み込むコードです。

🎃 initializers/load_config.rb

initializers/load_config.rbでYAMLの設定を読み込んでRails.application.configに設定する手順です。

def load_config(key, filepath)
yml = YAML.load_file(filepath).symbolize_keys
raise "No such file #{filepath}" if yml.blank?
config = yml[Rails.env.to_sym]
raise "No such environment #{Rails.env} on #{filepath}" if config.blank?
Rails.application.config.send("#{key}=", ActiveSupport::InheritableOptions.new(config.deep_symbolize_keys))
end
load_config(:examle, Rails.root.join('config', 'example.yml'))

🐝 config/example.yml

設定値の書かれたYAMLを設置します。

default: &default
message: "hoge"
development:
<<: *default
production:
<<: *default
message: "fuga"

🚌 Rails内での利用方法

Ruby on Rails内で実際に利用する手順はこちら

$ rails console RAILS_ENV=development
> Rails.application.config.example.message # => "hoge"
$ rails console RAILS_ENV=production
> Rails.application.config.example.message # => "fuga"

🍮 参考リンク

📚 おすすめの書籍