如何知道Rails中是否定义了模块?

时间:2012-02-28 17:08:01

标签: ruby-on-rails

在Ruby中,很容易看出是否定义了一个模块:

defined? MyModule

但是在Rails中,当你这样做时,Rails会尝试加载模块(来自自动加载路径等)。因此,如果它不存在,则会抛出错误而不是返回false

我能做到

do
  defined? MyModule
rescue
  # false
end

但是有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您使用的是什么版本的Ruby和Rails?当我尝试这个时,不会抛出任何错误:

ruby-1.9.3-p0 :1 > defined? Rails
 => "constant" 
ruby-1.9.3-p0 :2 > defined? NotAConstant
 => nil