所以我试图从类的价值中得到一个类:
bucket.product_name.constantize #=> 想检查是否失败
然而,有时应用程序会让我感到困惑:
NameError: 错误的常量名 a
所以我假设有一些奇怪product_name
的 s 具有nil
值或损坏的值:例如a
.
您将如何检查这是否是 NameError 问题?
说,
"a".constantize if "a".constantize != NameError
所以我试图从类的价值中得到一个类:
bucket.product_name.constantize #=> 想检查是否失败
然而,有时应用程序会让我感到困惑:
NameError: 错误的常量名 a
所以我假设有一些奇怪product_name
的 s 具有nil
值或损坏的值:例如a
.
您将如何检查这是否是 NameError 问题?
说,
"a".constantize if "a".constantize != NameError
defined?("a") == "constant"
# => true if "a" is a valid constant name
# => false otherwise
使用这个:
name = bucket.product_name
name.constantize if defined?(name) == "constant"
这太明显了,但以防万一:
begin
"a".constantize
rescue NameError
# handle error here
end