1. ホーム
  2. ruby-on-rails

[解決済み] Railsアプリのカスタム設定オプションを作成する最良の方法とは?

2022-06-21 09:37:09

質問

Railsアプリケーションに1つの設定オプションを作成する必要があります。それはすべての環境で同じであることができます。私は、私がそれを設定する場合、それを見つけた environment.rb に設定すると、ビューで利用可能になることがわかりました。

environment.rb

AUDIOCAST_URI_FORMAT = http://blablalba/blabbitybla/yadda

動作は良好です。

しかし、少し不安です。こんなやり方で良いのだろうか?もっとヒップなやり方があるのでしょうか?

どのように解決するのですか?

データベースのテーブルに保存する必要のない一般的なアプリケーションの設定のために、私は config.yml ファイルを config ディレクトリの中にあります。あなたの例では、それは次のようになります。

defaults: &defaults
  audiocast_uri_format: http://blablalba/blabbitybla/yadda

development:
  <<: *defaults

test:
  <<: *defaults

production:
  <<: *defaults

この設定ファイルは、カスタムイニシャライザーからロードされ config/initializers :

# Rails 2
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV]

# Rails 3+
APP_CONFIG = YAML.load_file(Rails.root.join('config/config.yml'))[Rails.env]

Rails 3を使用している場合、相対設定パスの先頭に誤ってスラッシュを付けないようにしましょう。

その後、この値を取得するために

uri_format = APP_CONFIG['audiocast_uri_format']

参照 このレールキャスト をご覧ください。