2015-05-14 2 views

ответ

3

Используйте знак $ для вашей переменной, и она станет глобальной. Как показано ниже:

$slack-notifier 

Также он должен инициализировать в config/initializers папке. Для этого вы можете создать в любом файле в config/intializers, например config/intializers/xyz.rb

Если вы не хотите изменять это во всем приложении. Тогда вы также можете создать константу.

Как соглашение, вы должны создать эту константу в папке интинераторов.

config/intializers/initialize.rb 

И contant внутри него должно быть столичным словом.

# config/intializers/initialize.rb 

ANY_CONSTANT = 'xyz' 

Вы можете использовать этот ANY_CONSTANT в любом месте приложения.

+0

Хмм не есть способ определить его в application.rb или environment.rb – Felix

+1

Вы можете создать в любом из файлов в 'конфигурации/intializers' например 'config/intializers/xyz.rb' Вы также можете использовать proc lambda и т. д. для условного присвоения. –

+0

Вы также можете объявлять глобальные переменные и константу в 'application.rb', например, внутри блока' config.after_initialize'. –

0

Начиная с Ruby on Rails 4.2 у вас есть файл config/secrets.yml, где вы можете сохранить свои настройки.

Вы определяете их, как это:

your_app: &your_app 
    app_id: 123 

и получить следующие значения:

Rails.application.secrets[:your_app]['app_id'] 

Другим вариантом является ENV переменные. Взгляните на this gem.

С dotenv создается файл с именем .env в корневом каталоге приложения и хранить глобальные настройки там следующим образом:

APP_ID=123 

Чтобы получить его в приложение, которое вы бы

ENV['APP_ID'] 

Добавить это файл до .gitignore. Это самый безопасный способ хранения настроек приложения.

Смежные вопросы