18 - Config
這篇將介紹與上篇 Configatron 相同功能類似的 Gem - Config。
gem install
Installing
1 2 3 4 5 6 7 8 9 10 11
| bundle exec rails rails g config:install
- 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 再放入對應的環境檔案。
Example
config > settings.yml
1 2
| size: 1 server: google.com
|
config > environments > development.yml
1 2 3 4 5
| size: 2 computed: <%= 1 + 2 + 3 %> section: size: 3 servers: [ {name: yahoo.com}, {name: amazon.com} ]
|
rails console
1 2 3 4 5
| Settings.size Settings.server Settings.computed Settings.section.servers[0].name Settings.section.servers[1].name
|
參考來源