Привет Я хочу иметь некоторые глобальные переменныеRails приложения определение глобального
, например, для слабины-уведомителя я Ван initilize его один раз и повторно использовать его.
Что такое лучшие практики для чего-то подобного?
Привет Я хочу иметь некоторые глобальные переменныеRails приложения определение глобального
, например, для слабины-уведомителя я Ван initilize его один раз и повторно использовать его.
Что такое лучшие практики для чего-то подобного?
Используйте знак $ для вашей переменной, и она станет глобальной. Как показано ниже:
$slack-notifier
Также он должен инициализировать в config/initializers
папке. Для этого вы можете создать в любом файле в config/intializers, например config/intializers/xyz.rb
Если вы не хотите изменять это во всем приложении. Тогда вы также можете создать константу.
Как соглашение, вы должны создать эту константу в папке интинераторов.
config/intializers/initialize.rb
И contant внутри него должно быть столичным словом.
# config/intializers/initialize.rb
ANY_CONSTANT = 'xyz'
Вы можете использовать этот ANY_CONSTANT в любом месте приложения.
Начиная с 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
. Это самый безопасный способ хранения настроек приложения.
В /config/initializers/global.rb
$slack-notifier
Хмм не есть способ определить его в application.rb или environment.rb – Felix
Вы можете создать в любом из файлов в 'конфигурации/intializers' например 'config/intializers/xyz.rb' Вы также можете использовать proc lambda и т. д. для условного присвоения. –
Вы также можете объявлять глобальные переменные и константу в 'application.rb', например, внутри блока' config.after_initialize'. –