Class attribute VS constant (fr)
J’ai récemment eu deux problèmes avec les constantes définies dans une classe :
- Problème de définitions multiples à cause de l’utilisation de concerns et de gems (plusieurs engines définis dans des gems utilisaient le meme concern où une contante était défnie).
- Problème lors de l’héritage.
Exemple :
J’ai donc opté pour l’utilisation de class_attribute présent depuis rails 3.
Avantages :
- On est sûr que le class_attribute ne sera initialisé qu’une seule fois.
- On peut surdéfinir le class_attribute sans problème après en avoir hérité.
Note : Attention au array et au hash en cas de redéfinition.