以下是我在项目中使用的示例模块(n个),它们具有相同的方法名称,但返回值不同(前缀为模块名称)。
module Example1
def self.ex_method
'example1_with_'
end
end
module Example2
def self.ex_method
'example2_with_'
end
end
我试图使用元编程的方式来完成这个任务,比如 #define_method。但是,对我来说这种方法并没有奏效。有没有其他的方法呢?
array.each do |name|
Object.class_eval <<TES
module #{name}
def self.ex_method
"#{name.downcase}_with_"
end
end
TES
end
错误截图:您可以看到在最后一行中说它没有完成。
irb
中尝试时,命令提示仍然显示该方法未以 end 结束。为什么“`”不是一个好的定义? - Mr. Black