2009-03-06 9 views
3

Existe-t-il une méthode dans Rails qui convertit un symbole en constante? Je veux être capable de faire quelque chose comme: symbole à constante dans les rails

:monkey.to_constant #=> Monkey 

Au moment où je dois faire

:monkey.to_s.camelize.constantize 

qui est un peu d'une bouchée.

Répondre

5
class Symbol 
    def to_c 
    self.to_s.camelize.constantize 
    end 
end 

:monkey.to_c 

Mise à jour pour Rails> = 4

Comme Rails> = 4 .classify vaut mieux utiliser que .camelize

# .camelize with singular and plural symbols/strings 
:user.to_s.camelize.constantize 
# => User 
:users.to_s.camelize.constantize 
# => NameError: uninitialized constant Users 

# .classify with singular and plural symbols/strings 
:user.to_s.classify.constantize 
# => User 
:users.to_s.classify.constantize 
# => User 
+0

ouais, assez juste! – inglesp

+0

Je crois que je viens de voir le patch de singe défini :) –

Questions connexes