2010-11-30 30 views
57

我正在使用Rails 2.3.x.我只想在config.cache_classes爲真的情況下運行一小段代碼。默認情況下,這對於生產是真實的,對於開發是假如何在運行時訪問Rails配置值?

如何從我的environment.rb,development.rb和production.rb文件之外訪問config.cache_classes的值?很容易判斷我們是否在生產或開發,Rails.env會給我們答案。但是不保證開發者沒有設置config.cache_classes = true開發中。

我當然明白,你通常不希望在開發和生產中運行單獨的代碼路徑。在這個特定的例子中,我們根本就沒有在啓動時執行一些工作。如果我們稍後需要執行它,我們將在開發和生產中這樣做。

回答

91

對於軌道2,你可以這樣做:

Rails.configuration.cache_classes 

如果你切換到Rails 3,這將是不同的;您可以通過以下方式訪問相同的值:

Rails.application.config.cache_classes 
+0

嘿。知道這將是明顯的事情。我試過Rails.config,沒想到試過。謝謝。一旦時限到期,我會接受這個答案。 – ChrisInEdmonton 2010-11-30 23:35:11

1

根據您在模塊中的位置,可能需要訪問根名稱空間。這應該鋼軌3+提供可以從任何地方在普遍的方式:

::Rails.application.config