【发布时间】:2020-06-16 12:37:57
【问题描述】:
我有这个简单的 ruby 模块。我能够对 Ruby 类进行猴子补丁,但这次我想对一个简单的 Ruby 模块进行猴子补丁,我尝试使用 这种方法但没有奏效。我认为它会起作用,因为当我修补一个简单的 Ruby 类时它会起作用。
Mymodule.class_eval do
def self.function1
"monkey patched function1 >>>"
end
end
这是我们要猴子补丁的原始 Mymodule:
module Mymodule
def self.function1
'this is function1'
end
end
示例用法:
puts Mymodule.function1() -> 输出:这是function1
知道如何给模块打补丁吗?
【问题讨论】:
-
“它不起作用”不是一个足够精确的错误描述,我们无法帮助您。 什么不起作用? 如何不起作用?你的代码有什么问题?您收到错误消息吗?错误信息是什么?你得到的结果不是你期望的结果吗?你期望什么结果,为什么,你得到的结果是什么,两者有什么不同?您正在观察的行为不是期望的行为吗?期望的行为是什么,为什么,观察到的行为是什么,它们有何不同?
-
我没有发现任何问题。当我复制并粘贴您的代码时,我得到了我期望的确切结果,即
"monkey patched function1 >>>"。
标签: ruby monkeypatching