LoginSignup
10
10

More than 5 years have passed since last update.

configを使ってGithubに公開したくない定数や設定値を管理する

Posted at

TwitterのSECRET_KEYなど、公開したくない情報はサーバー環境変数や環境変数をdotenvで管理する方法がありますが、configというGemを使って設定値を管理してみました。

railsconfig/config

configのinstall

1. Gemfileに下記追加

gem "config"

2. Install

rails g config:install  

インストールすると環境毎に設定ファイルが作られる。

$ bin/rails g config:install
      create  config/initializers/config.rb
      create  config/settings.yml
      create  config/settings.local.yml
      create  config/settings
      create  config/settings/development.yml
      create  config/settings/production.yml
      create  config/settings/test.yml
      append  .gitignore

3. 定数や設定値を記載する

公開してもいい定数はinstall時に作成されたファイルに記載すればいいが、公開したくないものに関しては下記のようにymlファイルを作成し記載します。

$ vim config/settings/development.local.yml
twitter: 
  app_id: "YOUR_APP_ID"
  app_secret: "YOUR_APP_SECRET"

また、config/settings.local.ymlに記載した場合もDevelopment環境で利用できるようです。

4. 定数を利用する

上記の例でいうと、下記のようにデータを取得できます。

Settings.twitter.app_id
=> "YOUR_APP_ID"

5. Commitし、Pushする

そのままCommitしてPushしても公開されないので便利です。
.gitignoreを見ると、末尾に下記三行が挿入されてるので、local.ymlは公開されません。

config/settings.local.yml
config/settings/*.local.yml
config/environments/*.local.yml

参考

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10