Rails3.0で定数をあつかうsettingslogicを使ってみた

githubでコードを見ていたところ、定数を扱う設定ファイルのようなものがあったので使ってみた。まだまだrails知らないこと多いな。

binarylogic/settingslogic · GitHub


環境

MacOSX 10.6.7
Ruby 1.9.2
Rails 3.0.5


設定方法

Gemfileに以下を追加します。

gem 'settingslogic'

インストール。

$ bundle install


app/models/settings.rbを作成

class Settings < Settingslogic
  source "#{Rails.root}/config/application.yml"
  namespace Rails.env # これを記述すると動作環境により設定ファイルを読み込んでくれます
end


config/application.ymlを作成してここに設定情報を書きます。開発環境と本番環境で違うものもなど便利ですね。

development:
  google_api_key: "APIKEY_DEVELOPMENT"

test:
  google_api_key: "APIKEY_DEVELOPMENT"

production:
  google_api_key: "APIKEY_PRODUCTION"


使い方

設定ファイルの参照の仕方は簡単です。

Settings.設定項目名

試してみると、

$ rails console
Loading production environment (Rails 3.0.5)
ruby-1.9.2-p180 :001 > Settings.google_api_key
 => "APIKEY_DEVELOPMENT" 

$ rails console production
Loading production environment (Rails 3.0.5)
ruby-1.9.2-p180 :001 > Settings.google_api_key
 => "APIKEY_PRODUCTION" 

環境により読み込みでくれてますね。