Ruby on Rails
Safe Constantize
Recherche…
Safe_constantize réussie
User
est une classe ActiveRecord
ou Mongoid
. Remplacez l' User
par n'importe quelle classe Rails
de votre projet (même quelque chose comme Integer
ou Array
)
my_string = "User" # Capitalized string
# => 'User'
my_constant = my_string.safe_constantize
# => User
my_constant.all.count
# => 18
my_string = "Array"
# => 'Array'
my_constant = my_string.safe_constantize
# => Array
my_constant.new(4)
# => [nil, nil, nil, nil]
Echec de safe_constantize
Cet exemple ne fonctionnera pas car la chaîne transmise n'est pas reconnue comme une constante dans le projet. Même si vous passez dans "array"
, cela ne fonctionnera pas car il n’est pas en majuscule.
my_string = "not_a_constant"
# => 'not_a_constant'
my_string.safe_constantize
# => nil
my_string = "array" #Not capitalized!
# => 'array'
my_string.safe_constantize
# => nil
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow