这个案子难倒我了。我正在编写一个非常简单的 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
现在我验证Bunny类还没有定义:
(byebug) Bunny
*** NameError Exception: uninitialized constant Bunny
nil
(byebug) next
现在我越过“要求”,一切都乱套了。一个非常长且明显重复的堆栈跟踪,其中包括引用循环要求的错误。以下是所有详细信息:https://gist.github.com/pitosalas/de54212ddeac66328c02d64156845c8c
接下来我可以尝试什么?
这样试试
gem install bunny
我想这会解决你的问题。
或者升级你的红宝石版本
require "bunny"