수색…


안전한 safe_constantize

UserActiveRecord 또는 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]

실패한 안전 _ 결정

이 예제는 전달 된 문자열이 프로젝트에서 상수로 인식되지 않기 때문에 작동하지 않습니다. "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