如何在运行时访问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