Ruby on Rails
Безопасная константа
Поиск…
Успешный safe_constantize
User
- класс ActiveRecord
или Mongoid
. Замените User
любым классом Rails
в вашем проекте (даже что-то вроде Integer
или 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]
Неудачный safe_constantize
Этот пример не будет работать, потому что строка, переданная внутри, не признается константой в проекте. Даже если вы перейдете в "array"
, он не будет работать, поскольку он не заглавный.
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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow