QA@IT

RailsのConfigの中で使う定数を定義するには?

2840 PV

現在、Rails3.2を使っているのですが、configフォルダ以下のrb,ymlファイルに対して、定数を渡したいのですが、どのように実現すればいいかわかりません。

具体的に現在の状況を説明すると、

まず初期化したい処理なのですが、db.ymlやoauthのCallBackURL等をconfigフォルダ以下で初期処理をしています。
そして、この2つのファイルに共通するのがサイトのURLなのです。
なので個人的には、

development:
  adapter: mysql2
  database: app_development
  host: <%= Constants.url %>

OmniAuth.config.full_host = <%= Constants.url %>

みたいな感じでやりたいのです。しかしこのコードは、Constantsのキーがセットされてない等のエラーがでます。
また現在は定数管理に、「settingslogic」というGemを使っています。

このように、Configの初期処理に対して、このような定数を定義したい場合はどうしたらよいでしょうか?
ご回答いただけると助かります。

回答

settingslogicは定数の読み込みをconfigが読み終わるまでしてくれないということでしょうか?
でしたらdotenvならconfigよりも先に読み込まれたと思います。
https://github.com/bkeepers/dotenv

編集 履歴 (0)
  • おお!こんな便利なGemがあったのですね。まさに今回のパターンにベストです。普段はsettingslogicで、それ以前に読み込みたい物は「dotenv」を使うという感じで使い分けていこうと思います。ありがとうございました。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。