Ruby 'require bunny' 触发了一个看起来像循环需求的东西

Ruby 'require bunny' triggers what looks like a circular require

这个案子让我难住了。我正在编写一个非常简单的 Sinatra 应用程序,它导致了一个看起来像循环要求的问题,特别是 require "bunny"。顺便说一句,这是经过大量试验、移动代码、注释掉等等的一些证据:

如您所见,我在 require 语句之前放置了一个断点:

rake test
[MAINAPP Starting! Rack: test]
/Users/pitosalas/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/pragmas.rb:301: warning: method redefined; discarding old integrity_check
/Users/pitosalas/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sqlite3-1.3.12/lib/sqlite3/pragmas.rb:107: warning: previous definition of integrity_check was here

[1, 10] in /Volumes/MonsterHD/mydev/nanotwitter/services/nt_service.rb
    1: require 'byebug'
    2: require_relative "../services/service_dispatch"
    3:
    4: byebug
=>  5: require 'bunny'
    6:
    7: class NtService
    8:   def initialize
    9:     @requests = 0
   10:     @running = false

现在我确认兔子 class 尚未定义:

(byebug) Bunny
*** NameError Exception: uninitialized constant Bunny

nil
(byebug) next

现在我跨过'require',一切都乱套了。一个非常长且明显重复的堆栈跟踪,其中包括引用循环要求的错误。以下是所有详细信息:https://gist.github.com/pitosalas/de54212ddeac66328c02d64156845c8c

这里有什么线索吗?我应该向您展示任何其他代码吗?谢谢!!

这样试试

gem install bunny

我想这会解决你的问题。

或升级您的 ruby 版本

require "bunny"