Ruby on Rails
安全なコンスタンティナイズ
サーチ…
成功した安全な定理
User
はActiveRecord
またはMongoid
クラスです。 User
をプロジェクト内の任意のRails
クラスに置き換えUser
( 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