這篇將介紹與上篇 Configatron 相同功能類似的 Gem - Config。
  # Gemfile
  gem "config"
  bundle exec rails rails g config:install
  # auto create
  - config/initializers/config.rb
  - config/settings.yml
  - config/settings.local.yml
  - config/settings
  - config/settings/development.yml
  - config/settings/production.yml
  - config/settings/test.yml
  - append .gitignore
這幾個檔案的優先權滿好理解的,與上篇的權限相同,一開始 Config 會先去讀 settings.yml 檔案內的 config,並根據目前的環境會去讀各對應的 config,然後把兩個檔案 merge 起來,如有重複的情況,settings 的設定會被覆蓋掉~
由此可見,如果 config 在各環境下都還是相同的參數時,就直接丟 settings 內即可,如果在不同環境下的 config 再放入對應的環境檔案。
  size: 1
  server: google.com
  size: 2
  computed: <%= 1 + 2 + 3 %>
  section:
    size: 3
    servers: [ {name: yahoo.com}, {name: amazon.com} ]
  Settings.size   # => 2
  Settings.server # => google.com
  Settings.computed # => 6
  Settings.section.servers[0].name # => yahoo.com
  Settings.section.servers[1].name # => amazon.com