地方でリモートワーク in Iwate

東京の受託開発会社でリモートワークしてます。

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の定数管理に使ってみて下さい。