Поиск…


Успешный 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