冒险村17 - Configatron

17 - Configatron

Rails 内时常会用到共用的连结、字串、数字等 config,除了可以写在 yml 来处理外,也可以安装现成的 Gem 来使用,这篇将介绍 Configatron,下一篇则是 Config

gem install

  # Gemfile
  gem "configatron"

Installing

  bundle exec rails generate configatron:install

  # auto create
  - 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

  # Put all your default configatron settings here.

  # Example:
  #   configatron.emails.welcome.subject = 'Welcome!'
  #   configatron.emails.sales_reciept.subject = 'Thanks for your order'
  #
  #   configatron.file.storage = :s3

  configatron.sidekiq.admin.password = "tang"
  configatron.sidekiq.admin.username = "chester"
  # rails console
  configatron
  =>
  configatron.sidekiq.admin.password = "tang"
  configatron.sidekiq.admin.username = "chester"

  configatron.to_h
  => {:sidekiq=>{:admin=>{:username=>"chester", :password=>"tang"}}}

也可以透过 configure_from_hash 来写会比较清楚

  # Put all your default configatron settings here.

  # Example:
  #   configatron.emails.welcome.subject = 'Welcome!'
  #   configatron.emails.sales_reciept.subject = 'Thanks for your order'
  #
  #   configatron.file.storage = :s3

  config = {
    sidekiq: {
      admin: {
        username: "chester",
        password: "tang"
      }
    },
    # ...
  }
  configatron.configure_from_hash(config)

这样子後不管在哪里,都可以 configatron 点 key 来拿到底下所有的 values!

参考来源

My blog


<<:  【Day 17】for 回圈的范例讲解

>>:  Day 18 -SQL 函数 SUM()!

【Day5】重要底层系统篇-Discuss

#odoo #开源系统 #数位赋能 #E化自主 当我们建立odoo资料库,首次安装我们想要的模组後,...

[常见的自然语言处理技术] 文本相似度(III): Word2vec带你深入word embeddings

前言 继续来讨论语意相似度,今天我们将深入探讨如何实现 word embedding 。也就是说,我...

铁人赛 Day26 -- 一定要知道的JQuery (二) -- 锚点动画

JQuery-锚点动画 什麽是锚点 & 锚点的作用是什麽 他是超连结的一种,可以帮助我们更快...

推论统计-z检定、t检定是什麽?

前面我们已经认识了假设检定的5步骤,接下来我们要进行:选择检定统计量(test statistic)...