Ruby on rails 如何知道模块是否在Rails中定义?
在Ruby中,很容易看到是否定义了模块:Ruby on rails 如何知道模块是否在Rails中定义?,ruby-on-rails,Ruby On Rails,在Ruby中,很容易看到是否定义了模块: defined? MyModule 但在Rails中,当您这样做时,Rails会尝试加载模块(从自动加载路径等)。因此,如果它不存在,它将抛出一个错误,而不是返回false 我可以 do defined? MyModule rescue # false end 但是有更好的方法吗?您使用的是什么版本的Ruby和Rails?当我尝试此操作时,不会引发任何错误: ruby-1.9.3-p0 :1 > defined? Rails =>
defined? MyModule
但在Rails中,当您这样做时,Rails会尝试加载模块(从自动加载路径等)。因此,如果它不存在,它将抛出一个错误,而不是返回false
我可以
do
defined? MyModule
rescue
# false
end
但是有更好的方法吗?您使用的是什么版本的Ruby和Rails?当我尝试此操作时,不会引发任何错误:
ruby-1.9.3-p0 :1 > defined? Rails
=> "constant"
ruby-1.9.3-p0 :2 > defined? NotAConstant
=> nil
你是在做一个Rails控制台吗?是的,否则Rails不会被定义