iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0

18 - Config

這篇將介紹與上篇 Configatron 相同功能類似的 Gem - Config。

gem install

  # Gemfile
  gem "config"

Installing

  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 再放入對應的環境檔案。

Example

config > settings.yml

  size: 1
  server: google.com

config > environments > development.yml

  size: 2
  computed: <%= 1 + 2 + 3 %>
  section:
    size: 3
    servers: [ {name: yahoo.com}, {name: amazon.com} ]

rails console

  Settings.size   # => 2
  Settings.server # => google.com
  Settings.computed # => 6
  Settings.section.servers[0].name # => yahoo.com
  Settings.section.servers[1].name # => amazon.com

參考來源

My blog


上一篇
冒險村17 - Configatron
下一篇
冒險村19 - Activerecord-import
系列文
冒險村-30 Day Ruby on Rails Tips Challenge30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言