2010-11-30 5 views
57

私はRails 2.3.xを使用しています。 config.cache_classesが真である場合に限り、小さなコードセクションを実行したいと思います。デフォルトでは、それは本番環境では真であり、開発ではfalseです。実行時にRails設定値にアクセスするにはどうすればよいですか?

environment.rb、development.rb、およびproduction.rbファイルの外部からconfig.cache_classesの値にアクセスするにはどうすればよいですか?我々が生産または開発にいるかどうかを知ることは簡単です。Rails.envが私たちに答えを与えます。しかし開発者が開発中のconfig.cache_classes = trueを設定していないという保証はありません。

通常、開発と生産で別々のコードパスを実行したくないと私は理解しています。この特定の例では、起動時にいくつかの作業を行うだけではありません。後で実行する必要がある場合は、開発と生産の両方でこれを実行します。 Railsの2については

答えて

91

、あなたが行うことができます:

Rails.configuration.cache_classes 

をあなたは3をレールに切り替えると、それは違うだろう。

Rails.application.config.cache_classes 
+0

へぇ:これは、レールのための普遍的な方法3+にどこからでもアクセスを提供する必要があります。それがそれのような明らかなものであることが分かっていた。私はRails.configを試してみましたが、それを試みるとは思わなかった。ありがとう。時間制限が切れると、私はこの回答を受け入れます。 – ChrisInEdmonton

+0

perform_cachingの例外もコントローラごとに設定できるので、コントローラごとにアクセスする必要があります – iain

+6

私にとっては、MyApp :: Application.config.foo'(Rails 4.1)でした。 –

1

モジュールの所在地によっては、ルート名前空間にアクセスする必要があります。

::Rails.application.config

関連する問題