17 - Configatron
Rails 內時常會用到共用的連結、字串、數字等 config,除了可以寫在 yml 來處理外,也可以安裝現成的 Gem 來使用,這篇將介紹 Configatron,下一篇則是 Config。
gem install
Installing
1 2 3 4 5 6 7 8
| bundle exec rails generate configatron:install
- config/initializers/configatron.rb - config/configatron/defaults.rb - config/configatron/development.rb - config/configatron/production.rb - config/configatron/test.rb
|
這幾個檔案的優先權滿好理解的,一開始 Configatron
會先去讀 default 檔案內的 config,並根據目前的環境會去讀各對應的 config,然後把兩個檔案 merge 起來,如有重複的情況,deault 的設定會被覆蓋掉~
由此可見,如果 config 在各環境下都還是相同的參數時,就直接丟 default 內即可,如果在不同環境下的 config 再放入對應的環境檔案。
Example
config > configatron > default.rb
1 2 3 4 5 6 7 8 9 10
|
configatron.sidekiq.admin.password = "tang" configatron.sidekiq.admin.username = "chester"
|
1 2 3 4 5 6 7 8
| configatron => configatron.sidekiq.admin.password = "tang" configatron.sidekiq.admin.username = "chester"
configatron.to_h => {:sidekiq=>{:admin=>{:username=>"chester", :password=>"tang"}}}
|
也可以透過 configure_from_hash
來寫會比較清楚
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
config = { sidekiq: { admin: { username: "chester", password: "tang" } }, } configatron.configure_from_hash(config)
|
這樣子後不管在哪裡,都可以 configatron
點 key 來拿到底下所有的 values!
參考來源