7

標準ライブラリのNetクラスの行にモンキーパッチを適用しようとしています。プロジェクトの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

しかし、それは機能しません。私はこれを正しくやっていますか?(これは、継承階層と正確に一致します。)

編集:問題の一部は、ファイルをinitalizersフォルダーに配置する必要があったことです。しかし、それでも同じエラーが表示されます。

4

1 に答える 1

10

ディレクトリ内のものはオンデマンドでのみロードされるため、スタックが初期化された後に自動的にロードされる場所にlib/このようなパッチを配置すると、より多くの成功を収めることができます。config/initializers/

次のような拡張機能の定義を折りたたむこともできます。

module Net::HTTP::HTTPHeader
  # ... (redefined methods) ...
end
于 2011-05-10T20:26:23.103 に答える