我有以下示例
class Test
configure_helper
end
module ConfigureHelper
module ClassMethods
def configure_helper
end
end
end
ConfigureHelper还具有一些功能,这些功能将使用包含模块的ClassMethods来扩展类。
所以问题是,如果我使用以下代码来包括模块
Test.send :include, ConfigureHelper
Test类将被加载,并将为configure_helper引发NoMethodError。
有没有办法附加config_helper方法,这样就不会调用config_helpr?
为什么不在类定义中包含模块权限?
module ConfigureHelper
def self.included base
base.extend ClassMethods
end
module ClassMethods
def configure_helper
end
end
end
class Test
include ConfigureHelper
configure_helper
end
试试
class Test
end
module ConfigureHelper
module ClassMethods
def self.included(base)
base.class_eval do
def configure_helper
p 'Yes'
end
end
end
end
end
Test.send(:include, ConfigureHelper::ClassMethods)
Test.new.configure_helper