pic*_*rdo 7 ruby monkeypatching ruby-on-rails-3
我正在尝试在标准库中对Net类中的一行进行monkeypatch.我在项目的lib文件夹中创建了一个名为patches.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
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我这样做了吗?(这与继承层次结构完全相同.)
编辑:部分问题是我必须将文件放在initalizers文件夹中.但仍然看到同样的错误.
tad*_*man 10
由于lib/目录中的内容只是按需config/initializers/加载,因此在初始化堆栈后,将这样的补丁放在自动加载的位置可能会更成功.
您还可以将扩展的定义折叠为以下内容:
module Net::HTTP::HTTPHeader
# ... (redefined methods) ...
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5786 次 |
| 最近记录: |