我通过cli上传递的参数动态定义了一个模块名称,例如Required::Module::#{ARGV.first}
有没有办法检查该模块是否存在?另外,在不知道其确切名称的情况下,我如何在其上运行方法?
发布于 2010-08-19 16:00:50
使用const_get
方法检查模块是否存在:
begin
mod = Required::Module::const_get "ModuleName"
#It exists
rescue NameError
#Doesn't exist
end
发布于 2010-08-24 23:21:01
为此,请使用const_defined?
。
Required::Module.const_defined?(:ModuleName)
返回true或false。
发布于 2013-06-02 08:00:03
如果你有ActiveSupport
mod = ("Required::Module::#{ARGV.first}".constantize rescue nil)
https://stackoverflow.com/questions/3519727
复制相似问题