Куда поместить глобальные переменные в Rails 3

Я помещал глобальные переменные в environment.rb с моим приложением Rails 2.3.8, например:

MAX_ALLOWD_ITEMS = 6

Это не похоже, работает в Rails 3. Я попытался поместить его в application.rb, и это не помогло.

Что вы предлагаете?

25
задан Tam 30 August 2010 в 08:04
поделиться

2 ответа

Если вы уже пытались перезапустить свой сервер, как предложил Райан, попробуйте поместить его в свой application.rb следующим образом:

module MyAppName
  class Application < Rails::Application
    YOUR_GLOBAL_VAR  = "test"
  end
end

Затем вы можете вызвать его с помощью пространства имен в ваших контроллерах, представлениях или где-либо еще. ..

MyAppName::Application::YOUR_GLOBAL_VAR

Другой альтернативой может быть использование чего-то вроде settingslogic. С помощью settingslogic вы просто создаете файл конфигурации yml и модель (Settings.rb), которая указывает на файл конфигурации. Затем вы можете получить доступ к этим настройкам в любом месте вашего приложения rails с помощью:

Settings.my_setting
47
ответ дан 28 November 2019 в 20:33
поделиться

Если вы действительно определяете это в config/environment.rb, как вы говорите, единственный способ воспроизвести вашу проблему — это запустить сервер, используя rails server, , затем вставив переменную в config/environment.rb, ссылаясь на нее где-то в представлении или контроллере, а затем пытаясь загрузить эту конкретную часть моего приложения.

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

2
ответ дан 28 November 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: