Глобальная переменная приложения

В Rails, где я должен определить переменную, которая может быть распознана каждым слоем Rails-стеков.

Например, я хотел бы иметь переменную CUSTOMER_NAME='John', доступ к которой можно получить в помощнике, rake, контроллере и модель. Где я должен определить эту переменную в Rails приложении?

Я использую Rails v2.3.2

Ответ 2

Альтернативный подход - установить ключ в конфигурационном объекте в config/application.rb, например:

MyApp::Application.configure do
   # ...
   config.my_key = 'some "global" value'
end

После этого вы можете получить доступ к my_key из любого места в приложении:

MyApp::Application.config.my_key

Кроме того, Майк Перхам описал аналогичный, хотя и более всеобъемлющий подход в своем сообщении в блоге.

Ответ 3

Вам нужна истинная глобальная константа? Используйте ::COSTUMER_NAME. Вам нужна истинная глобальная переменная? Используйте $COSTUMER_NAME (обескуражен). Вам нужна глобальная переменная запроса? Используйте Hash в методе #env.