Как получить доступ к значению конфигурации Rails во время выполнения? - PullRequest
58 голосов
/ 01 декабря 2010

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

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

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

Ответы [ 2 ]

99 голосов
/ 01 декабря 2010

Для Rails 2 вы можете сделать:

Rails.configuration.cache_classes

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

Rails.application.config.cache_classes
2 голосов
/ 15 февраля 2016

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

::Rails.application.config

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...