【发布时间】:2011-05-10 19:50:52
【问题描述】:
我正在尝试对标准库的 Net 类中的一行进行猴子补丁。我在项目的 lib 文件夹中创建了一个名为 patch.rb 的文件并添加了这个
module Net
class HTTP < Protocol
module HTTPHeader
def initialize_http_header(initheader)
@header = {}
return unless initheader
initheader.each do |key, value|
@header[key.downcase] = [value.strip] rescue ""
end
end
end
end
end
但它不起作用。我这样做对吗? (这与继承层次完全平行。)
编辑:部分问题是我必须将文件放在 initalizers 文件夹中。但仍然看到同样的错误。
【问题讨论】:
-
你在做
require 'lib/patches'吗? -
@caley 我以为 lib 文件夹中的所有内容都是在启动时自动加载的。
-
抱歉,我以为您指的是您创建的 lib 文件夹。
-
@taro:错误是一个 whiny_nil,这是我试图解决的问题。只要我看到错误,这意味着我的补丁没有覆盖原始补丁。
标签: ruby ruby-on-rails-3 monkeypatching