如何在运行时访问Rails配置值?

时间:2010-11-30 23:28:09

标签: ruby-on-rails

我正在使用Rails 2.3.x.当且仅当config.cache_classes为真时,我想要运行一小段代码。默认情况下,这对于生产是正确的,对于开发来说是错误的。

如何从environment.rb,development.rb和production.rb文件外部访问config.cache_classes的值?很容易判断我们是否处于生产或开发阶段,Rails.env会给我们答案。但是不能保证开发人员没有在开发中设置config.cache_classes = true

我当然明白,您通常不希望在开发和生产中运行单独的代码路径。在这个特定的例子中,我们根本就没有在启动时执行某些工作;如果我们以后需要执行它,我们将在开发和生产中这样做。

2 个答案:

答案 0 :(得分:97)

对于Rails 2,你可以这样做:

Rails.configuration.cache_classes

如果你换过Rails 3,它会有所不同;您可以使用以下命令访问相同的值:

Rails.application.config.cache_classes

答案 1 :(得分:2)

根据您在模块中的位置,您可能需要访问根命名空间。这应该以通用方式为任何地方提供对rails 3 +的访问:

::Rails.application.config