0

所以我试图从类的价值中得到一个类:

bucket.product_name.constantize #=> 想检查是否失败

然而,有时应用程序会让我感到困惑:

NameError: 错误的常量名 a

所以我假设有一些奇怪product_name的 s 具有nil值或损坏的值:例如a.

您将如何检查这是否是 NameError 问题?

说,

"a".constantize if "a".constantize != NameError

4

2 回答 2

1
defined?("a") == "constant"

# => true if "a" is a valid constant name
# => false otherwise

使用这个:

name = bucket.product_name
name.constantize if defined?(name) == "constant"
于 2013-08-21T02:39:51.183 回答
1

这太明显了,但以防万一:

begin
  "a".constantize
rescue NameError
  # handle error here
end
于 2013-08-21T03:12:02.020 回答