您好我有两个模块
Admin.is_engine?
=>假的
Blog.is_engine?
=>真
肯定我可以尝试一下来确定这个
def is_engine? module
module::Engine
true
rescue NameError
false
end
这里
is_engine? Admin
将返回false
is_engine? Blog
将返回true
由于
答案 0 :(得分:3)
我不确定我是否理解你要做的事情:Rails Engine是一个类(Rails::Engine
的子类),而不是模块。
如果您有实例,则可以使用:
admin.kind_of?(Rails::Engine)
如果您有类,则可以使用:
Something.ancestors.include?(Rails::Engine)
如果你拥有的是一个模块,那么它不能是Rails :: Engine的子类,而且它不是引擎。
如果你有一个模块或常量something
并且想知道它的命名空间中是否有一个具有某个名称的常量,你可以使用:
something.constants.include?(:Engine)