Cela dépend de la corde...
S'il a déjà la forme appropriée (boîtier, pluralisation, etc.) et qu'il correspondrait directement à un objet, alors.. :
Rails :
'User'.constantize # => User
Ruby :
Module.const_get 'User' # => User
Mais sinon (notez la différence de boîtier) :
'user'.constantize # => NameError: wrong constant name user
Module.const_get 'user' # => NameError: wrong constant name user
Par conséquent, vous devez vous demander... la chaîne source est-elle au singulier ou au pluriel (fait-elle référence à une table ou non ?), est-elle composée de plusieurs mots et AlreadyCamelCased ou is_it_underscored ?
Avec Rails, vous avez ces outils à votre disposition :
Utilisez cameliser pour convertir les chaînes de caractères en chaînes de caractères en majuscules, même en traitant les caractères de soulignement et les barres obliques :
'object'.constantize # => NameError: wrong constant name object
'object'.camelize # => "Object"
'object'.camelize.constantize # => Object
'active_model/errors'.camelize # => "ActiveModel::Errors"
'active_model/errors'.camelize.constantize # => ActiveModel::Errors
Utilisez classer pour convertir une chaîne de caractères, qui peut même être plurielle (c'est peut-être une référence de table), pour créer un nom de classe (toujours une chaîne de caractères), puis appeler constance pour essayer de trouver et de retourner la constante du nom de la classe (notez qu'en Ruby les noms de classe sont des constantes ) :
'users'.classify => "User" # a string
'users'.classify.constantize # => User
'user'.classify => "User" # a string
'user'.classify.constantize # => User
'ham_and_eggs'.classify # => "HamAndEgg"
En POR (Plain Old Ruby), vous avez capitaliser mais cela ne fonctionne que pour le premier mot :
Module.const_get 'user'.capitalize => User
...sinon vous devez utiliser des outils fondamentaux tels que strip, split, map, join, etc. pour réaliser la manipulation appropriée :
class HamAndEgg end # => nil
Module.const_get ' ham and eggs '.strip.gsub(/s$/,'').split(' ').map{|w| w.capitalize}.join # => HamAndEgg