Ruby 什么是;以前对x的定义是“此处”;是什么意思?

Ruby 什么是;以前对x的定义是“此处”;是什么意思?,ruby,Ruby,在我的Sinatra/activerecord应用程序中,rake测试给了我一系列奇怪的警告: /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/

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

/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:to_s之前的定义在这里


他们在告诉我什么?我在网上找不到任何关于这条消息的明确参考。

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

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

bunny-2.9.2/lib/bunny/channel.rb:257:警告:之前对to_的定义在这里


它告诉你,在
channel.rb:257
中为该类定义了
to\u s
,然后在
channel.rb:1580
中找到了同一类的
to\u s
的另一个定义。它警告您关于模糊性以及它如何通过使用
频道解决它。rb:1580

您是说这是一个标准的Ruby警告。。。ruby本身在解析文件时生成的文件?ruby是否总是检测到这个错误?@pitosalas是的,这是ruby和许多语言的标准警告。Ruby只在打开警告时才会发出警告。这通常是通过
ruby-w
完成的,不过可能还有其他方法。谢谢。我已经使用ruby多年了,不记得见过它。我以为它是从兔子身上冒出来的:)@pitosalas打开警告会让人大吃一惊和他们一起发展是件好事。它们可能很烦人,但捕捉到错误是值得的,否则您可能会在调试时大发雷霆。比如“为什么我的
to_s
方法没有运行?!”(因为有第二个方法在跟踪它)