Вы должны быть осторожны с этим, потому что, если ваш класс претерпевает какие-либо изменения состояния (добавленные функции, измененные константы, переменные класса и т. Д.), Состояние, в котором ваш класс находился в , когда псевдоним былэкземпляр не будет отражать обновленные изменения в вашем классе.
Чтобы избежать запястного канала без ущерба для читаемости , вы можете хранить лямбду в своем псевдониме, а не в фактическом классе.Конечно, лямбда содержит класс, но это гарантирует, что ваш псевдоним вызовет последнюю версию вашего класса.
Я поместил это в свой инициализатор supermanpatches.rb
rails (внутри config/initializers/
) ‡
LAP = lambda { LosAngelesParcel }
Теперь вы можете вызвать это, используя LAP[]
, и будет загружена только что выпущенная версия вашего класса.(Позволяет вам создавать экземпляры, например, с помощью l = LAP[].new
)
‡ запускается один раз при загрузке rails, а затем распространяется через ваше приложение, вызывается в любом месте, как глобальная переменная, но 'read-только ", так сказать .