我正在使用Rails 2.3.x.当且仅当config.cache_classes
为真时,我想要运行一小段代码。默认情况下,这对于生产是正确的,对于开发来说是错误的。
如何从environment.rb,development.rb和production.rb文件外部访问config.cache_classes的值?很容易判断我们是否处于生产或开发阶段,Rails.env
会给我们答案。但是不能保证开发人员没有在开发中设置config.cache_classes = true
。
我当然明白,您通常不希望在开发和生产中运行单独的代码路径。在这个特定的例子中,我们根本就没有在启动时执行某些工作;如果我们以后需要执行它,我们将在开发和生产中这样做。
答案 0 :(得分:97)
对于Rails 2,你可以这样做:
Rails.configuration.cache_classes
如果你换过Rails 3,它会有所不同;您可以使用以下命令访问相同的值:
Rails.application.config.cache_classes
答案 1 :(得分:2)
根据您在模块中的位置,您可能需要访问根命名空间。这应该以通用方式为任何地方提供对rails 3 +的访问:
::Rails.application.config