Ответ 1
В инициализаторе в /app/config/initializers
здесь загружаются все файлы .rb, я обычно создаю одно имя preferences.rb для таких вещей.
Смотрите: http://guides.rubyonrails.org/configuring.html#using-initializer-files
В Rails, где я должен определить переменную, которая может быть распознана каждым слоем Rails-стеков.
Например, я хотел бы иметь переменную CUSTOMER_NAME='John'
, доступ к которой можно получить в помощнике, rake, контроллере и модель. Где я должен определить эту переменную в Rails приложении?
Я использую Rails v2.3.2
В инициализаторе в /app/config/initializers
здесь загружаются все файлы .rb, я обычно создаю одно имя preferences.rb для таких вещей.
Смотрите: http://guides.rubyonrails.org/configuring.html#using-initializer-files
Альтернативный подход - установить ключ в конфигурационном объекте в config/application.rb
, например:
MyApp::Application.configure do
# ...
config.my_key = 'some "global" value'
end
После этого вы можете получить доступ к my_key
из любого места в приложении:
MyApp::Application.config.my_key
Кроме того, Майк Перхам описал аналогичный, хотя и более всеобъемлющий подход в своем сообщении в блоге.
Вам нужна истинная глобальная константа? Используйте ::COSTUMER_NAME
.
Вам нужна истинная глобальная переменная? Используйте $COSTUMER_NAME
(обескуражен).
Вам нужна глобальная переменная запроса? Используйте Hash
в методе #env
.