NoMethodError: 未定义的方法 `<<' net/protocol.rb

Mar*_*nos 0 ruby http

我已将应用程序从 2.1 升级到 ruby​​ 到 2.4,但收到以下错误消息:

NoMethodError: undefined method `<<' for {:read_timeout=>60, :continue_timeout=>nil, :debug_output=>nil}:Hash
Did you mean?  <
from /Users/me/.rubies/ruby-2.4.3/lib/ruby/2.4.0/net/protocol.rb:219:in `writing'
Run Code Online (Sandbox Code Playgroud)

net/http 库中似乎发生了一些变化。任何人都知道发生了什么变化和/或如何修复它?

def writing
  @written_bytes = 0
  @debug_output << '<- ' if @debug_output
  yield
  @debug_output << "\n" if @debug_output
  bytes = @written_bytes
  @written_bytes = nil
  bytes
end
Run Code Online (Sandbox Code Playgroud)

在第一@debug_output行引发异常。

mrz*_*asa 6

您可能需要确保 gem 版本与 ruby​​ 2.4 兼容。有几个问题与您类似: