Ruby 中的"Previous definition of x was here"是什么意思?



在我的Sinatra/activerecord应用程序中,耙子测试给了我这一系列奇怪的警告:

/Users/pitosalas/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/activesupport-5.1.5/lib/active_support/core_ext/hash/slice.rb:21: warning: method redefined; discarding old slice
/Users/pitosalas/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/arel-8.0.0/lib/arel/visitors/informix.rb:21: warning: assigned but unused variable - froms
/Users/pitosalas/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/bunny-2.9.2/lib/bunny/cruby/ssl_socket.rb:110: warning: assigned but unused variable - le
/Users/pitosalas/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/bunny-2.9.2/lib/bunny/session.rb:259: warning: method redefined; discarding old port
/Users/pitosalas/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/bunny-2.9.2/lib/bunny/queue.rb:384: warning: method redefined; discarding old add_default_options
/Users/pitosalas/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/bunny-2.9.2/lib/bunny/queue.rb:379: warning: previous definition of add_default_options was here
/Users/pitosalas/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/bunny-2.9.2/lib/bunny/channel.rb:1580: warning: method redefined; discarding old to_s
/Users/pitosalas/.rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/bunny-2.9.2/lib/bunny/channel.rb:257: warning: previous definition of to_s was here

我主要对以下消息感兴趣:warning: previous definition of to_s was here

他们在告诉我什么?我在网上找不到对该消息的任何明确引用。

这实际上是一个由两部分组成的警告。

bunny-2.9.2/lib/bunny/channel.rb:1580:警告:方法重新定义;丢弃旧to_s

Bunny-2.9.2/lib/Bunny/channel.rb:257:警告:to_s的先前定义在这里

它告诉你to_schannel.rb:257为该类定义了,然后在channel.rb:1580中找到了同一类的另一个to_s定义。它警告您歧义以及它如何通过使用 channel.rb:1580 的那个来解决它。

最新更新