RailsでYAMLに定義したカスタム設定を使う
Railsで自分で定義したYAMLファイルをロードしてアプリケーションで使いたい!
ってことでやってみますー
僕がRailsでカスタム設定といえば、そうこの子です!
Latest commit 0ae134b on Aug 7, 2014
なるほど、開発やめちゃったんだねー
そう言えばこんな子もいたよ
Latest commit 9a670d4 22 days ago
うん、大丈夫そう!これを使お、、う?
ちょっと気になったことが、
僕がゴリゴリRailsでアプリ作りまくってたときは、settingslogicはみんな使ってた
なのに、更新されてない???
なんで?
そこでRails本体のconfig周りを調べてみました!
すると、、
config_for
って知らない子ですねー
どうやら、Railsのrootディレクトリ/config配下にあるYAMLファイルをシュッとロードしてくれるメソッドみたいです
# config/my_settings.yml default: &default setting_name: My setting development: <<: *default
irb(main):001:0> Rails.application.config_for(:my_settings) => {:setting_name=>"My setting"}
第2引数の env
のデフォルトは Rails.env
なので省略可能です
環境変数を使ってみましょう!
# config/my_settings.yml default: &default setting_name: <%= ENV.fetch("MY_SETTING_NAME","") %> development: <<: *default
irb(main):001:0> ENV["MY_SETTING_NAME"] = "My setting name" irb(main):002:0> Rails.application.config_for(:my_settings) => {:setting_name=>"My setting name"}
settingslogicやconfigなどのgemがなくても、簡単にYAMLフィアルをロードできました!
Railsガイドにもちゃんと書かれてましたー