2013-10-11 39 views
8
試圖運行命令,我有這個錯誤

衛隊給予「未初始化不斷聽::輥閘(NameError)」錯誤

guard 

這是一個應用程序現在我已經開發了一段時間要安裝防護裝置...

之前,我下面就從後衛Ryan Bates的教程中的說明:

http://railscasts.com/episodes/264-guard

這是我的寶石文件。

source 'https://rubygems.org' 

gem 'rails', '3.2.14' 
gem 'rake' 
gem 'mysql2' 
gem 'bcrypt-ruby' 
gem 'devise' 
gem 'rails_admin' 
gem 'jbuilder' 
gem 'gon' 
gem 'dynamic_form' 
gem 'therubyracer', :require => 'v8' 
gem 'jquery-rails' 
gem 'jquery-ui-rails' 
gem 'rails3-jquery-autocomplete' 
gem 'roo' 

group :assets do 
    gem 'sass-rails', '~> 3.2.4' 
    gem 'coffee-script', '~> 2.2.0' 
    gem 'uglifier', '~> 1.2.3' 
end 

group :development, :test do 
    gem 'capistrano' 
    gem 'bullet' 
    gem 'rvm-capistrano' 
    gem 'better_errors' 
    gem 'rspec-rails', '2.10.0' 
    gem 'awesome_print' 
    gem 'wirble' 
    gem 'thin' 
    gem 'guard-rspec' 
    gem 'rb-fsevent', :require => false if RUBY_PLATFORM =~ /darwin/i 
end 

group :test do 
    gem 'capybara', '1.1.2' 
    gem 'faker' 
    gem 'factory_girl_rails' 
    gem 'spork', '~> 1.0rc' 
end 

以下是完整的錯誤:

app3 git:(write-tests) ✗ guard 
    /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/lib/guard.rb:47:in `setup': uninitialized constant Listen::Turnstile (NameError) 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/lib/guard.rb:155:in `start' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/lib/guard/cli.rb:104:in `start' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/thor-0.18.1/lib/thor/command.rb:27:in `run' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/thor-0.18.1/lib/thor/invocation.rb:120:in `invoke_command' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/thor-0.18.1/lib/thor.rb:363:in `dispatch' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/thor-0.18.1/lib/thor/base.rb:439:in `start' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/bin/guard:6:in `<top (required)>' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/guard:23:in `load' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/guard:23:in `<main>' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `eval' 
     from /Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in `<main>' 

回答

9

我也有類似的問題,我的軌道3.2.13的應用程序。

混亂的部分是,我沒有gem 'guard'在我的Gemfile,但創業板顯然以下的依賴:

gem 'guard-rspec' 
gem 'guard-livereload' 
gem 'guard-cucumber' 

一切工作,直到最近bundle update,這帶來了一個非常新的版本的listen,guard的依賴之一,而guard本身被阻止(不知道爲什麼)。因此,您看到的錯誤是guard試圖調用listen中不再存在的類。

問題解決了通過明確加入guard當前版本Gemfile

gem 'guard', '>=2.1.0' 

,當然重新捆綁。

+0

我添加了特定版本的警衛並添加了「guard-livereload」。這就是訣竅。謝謝你的幫助! –

+2

調用「包」對我不起作用。我已經運行了「bundle update guard」命令 – Darkside

13

您不必gem "guard"在寶石文件。

我得到了同樣的錯誤。

其中一個插件包括guard-bundler,它將防護版本鎖定在1.4.0,而最新版本的guard是2.0.5。刪除該插件修復了錯誤。不要忘記從警衛文件中刪除guard-bundler代碼。

我猜你的守護寶石是作爲系統寶石安裝的。把它放在你的寶石文件中並用bundle exec運行它。

在coderay上guard和better_errors之間也存在依賴衝突。我把它固定在1.0.5以使它們都安裝好。我沒有測試任何與coderay相關的功能,以查看該版本是否會導致better_errors出現問題。

gem 'coderay', '~> 1.0.5'

+2

從後衛1.4.0更新到後衛2.0.5對我來說是個詭計。 –

相關問題