Подтвердить что ты не робот

Как получить доступ к значению конфигурации Rails во время выполнения?

Я использую Rails 2.3.x. Я хотел бы, чтобы небольшая часть кода запускалась тогда и только тогда, когда значение config.cache_classes истинно. По умолчанию это верно для производства и false для разработки.

Как мне получить доступ к значению config.cache_classes за пределами моих файлов environment.rb, development.rb и production.rb? Легко сказать, будем ли мы в производстве или развитии, Rails.env даст нам ответ. Но нет гарантии, что разработчик не установил config.cache_classes = true в разработке.

Я, конечно, понимаю, что вы вообще не хотите запускать отдельные кодовые пути в разработке и производстве. В этом конкретном случае мы просто не выполняем некоторую работу по запуску; если нам нужно будет выполнить его позже, мы сделаем это, как в разработке, так и в производстве.

4b9b3361

Ответ 1

Для Rails 2 вы можете:

Rails.configuration.cache_classes

Если вы когда-нибудь переключитесь на Rails 3, это будет другим; вы можете получить одно и то же значение с помощью:

Rails.application.config.cache_classes

Ответ 2

В зависимости от того, где вы находитесь в модуле, вам может потребоваться доступ к корневому пространству имен. Это должно обеспечить доступ из любого места универсальным способом для рельсов 3 +:

::Rails.application.config