如何在运行时访问Railsconfiguration值?

我正在使用Rails 2.3.x. 当且仅当config.cache_classes为true时,我才想运行一小段代码。 默认情况下,这是真实的生产和虚假的发展。

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

我当然明白,你通常不希望在开发和生产中运行不同的代码path。 在这个特定的例子中,我们根本就没有在启动时做一些工作。 如果我们稍后需要执行,我们会在开发和生产两方面这样做。

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

 Rails.configuration.cache_classes 

如果你转向Rails 3,它将会不同。 您可以通过以下方式访问相同的值:

 Rails.application.config.cache_classes 

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

::Rails.application.config