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"
環境により読み込みでくれてますね。