在 Rails 应用程序中,我想检查是否定义了常量,并在必要时自动加载它。defined?
在自动加载发生之前,运算符返回 false 。
defined? Foo # => false :(
Foo # => Foo
defined? Foo # => true
我目前的解决方法是这样的:
begin
Foo # try to autoload
true
rescue NameError
false
end
有没有更好的方法来检查是否定义了常量,但如果需要也自动加载它?
请求的理由:
用于 Rails 的 Konacha JS 测试框架应该自动获取一个固定 Ruby 文件(如果存在)。加载应该使用 Rails 的自动加载机制进行,因此它受益于自动重新加载(使用config.cache_classes = false
)。