Ruby
Rails
settingslogic

Railsで定数を環境ごとに管理するrails_config(現 config)

More than 3 years have passed since last update.


config って?

開発環境ごとに定数を YAML ファイルで管理できるプラグインのこと


公式リポジトリ

https://github.com/railsconfig/config


configをインストール

Gemfile に config を記述


Gemfile

gem 'config'


vendor/bundle 以下に config をインストール

$ bundle install --path vendor/bundle

$ bundle exec rails g config:install
create config/initializers/rails_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

gitignoreには自動で下記の内容が追加される

config/settings.local.yml

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

使用したい環境に応じて編集するファイルを変更

YAML(環境)
ファイルの場所

全ての環境のYAML
config/settings.yml

ローカル環境専用のYAML
config/settings.local.yml

開発環境専用のYAML
config/settings/development.yml

テスト環境専用のYAML
config/settings/test.yml

本番環境専用のYAML
config/settings/production.yml


記述例


config/settings.yml

twitter:

follow_target_name: 'mossmoss'
text: 'mossmossmossmossmoss'
url : 'http://mossmossmossmossmoss.com/'


参照例

Settings.twitter[:text]

Settings.twitter['text']
Settings[:twitter][:text]

settingslogicもいいけど、わかりやすいしそこそこ大きな開発の時に使えそうなrails_configでした。