Il faut faire attention avec cela, car si votre classe subit un changement d'état (ajout de fonctions, modification de constantes, de variables de classe, etc.) l'état dans lequel se trouvait votre classe quand l'alias a été instancié ne reflétera pas les changements mis à jour dans votre classe.
Afin de éviter le canal carpien sans sacrifier la lisibilité Si vous avez une classe, vous pouvez stocker une lambda dans votre objet alias plutôt que dans la classe elle-même. Bien sûr, la lambda contient la classe, mais cela garantit que votre alias appellera la classe dernier site version de votre classe.
J'ai mis ça dans mon supermanpatches.rb
initialisateur de rails (à l'intérieur de config/initializers/
) ‡
LAP = lambda { LosAngelesParcel }
Vous pouvez maintenant l'appeler en utilisant LAP[]
et une version fraîche de votre classe sera chargée. (Ce qui vous permet de créer des instances, par exemple en l = LAP[].new
)
‡ s'exécute une seule fois au chargement de rails et est ensuite omniprésente dans votre application. Elle peut être appelée n'importe où, un peu comme une variable globale, mais en lecture seule, pour ainsi dire. .