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