Railsで定数管理をどうするか?

Railsで定数管理をするとき皆さんはどうされてますか?

私は最近eash_settingsというgemを使っています。

github.com

config/settings.ymlを作成して、そこに設定したい定数、管理値を記述していくだけです。

log_level: info
other_service:
endpoint: https://myapp/api/v1
apikey: API_KEY_XXX
secret: SECRET_KEY_XXX
demo_users:
<% 5.times do |i| %>
- <%= "user%02d" % [i] %>
<% end %>

erbも書けます。

呼び出しは至って簡単。

EasySettings.other_service
#=> {"endpoint"=>"https://myapp/api/v1", "apikey"=>"API_KEY_XXX", "secret"=>"SECRET_KEY_XXX"}
EasySettings.other_service.endpoint    #=> "https://myapp/api/v1"
EasySettings.other_service["endpoint"] #=> "https://myapp/api/v1"
EasySettings.other_service[:endpoint]  #=> "https://myapp/api/v1"

environmentごとに設定値を設定することもできます。

defaults: &defaults
app_name: NamespaceSample
development: &development
<<: *defaults
endpoint: http://backend-dev/api/v1
test:
<<: *development
production:
<<: *defaults
endpoint: http://backend/api/v1

導入も簡単ですし、便利ですのでRailsの定数管理に使ってみて下さい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です