2013-10-11 9 views
8

ich diesen Fehler habe bei dem Versuch, den Befehl auszuführen:Garde Giving „nicht initialisierte Konstante Hören :: Drehkreuz (Nameerror)“ Fehler

guard 

Dies ist eine App, die ich für eine Weile entwickelt sich nun schon seit

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

Hier Datei mein Gem

: bevor Sie Wache ...

ich folge den Anweisungen von Ryan Bates auf der Hut Tutorial zu installieren.

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 

Hier ist der vollständige Fehler:

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>' 

Antwort

9

Ich hatte ein ähnliches Problem mit meinen Schienen 3.2.13 App.

Der verwirrende Teil war, dass ich nicht gem 'guard' in meinem Gemfile habe, aber das Juwel war offensichtlich eine Abhängigkeit der folgenden Möglichkeiten:

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

alles bis zu einem letzten bundle update gearbeitet, die in einer viel neueren Version gebracht von listen, einer der guard Abhängigkeiten, während guard selbst zurückgehalten wurde (nicht sicher warum). Der Fehler, den Sie gesehen haben, war guard, der versucht, eine Klasse aufzurufen, die nicht mehr in listen existiert.

gem 'guard', '>=2.1.0' 

und natürlich wieder Bündelung:

Das Problem wurde durch explizites Hinzufügen der aktuellen Version von guard zu Gemfile gelöst.

+0

Ich habe diese spezifische Version von Guard hinzugefügt und auch "guard-liveload" hinzugefügt. Das war der Trick. Danke für Ihre Hilfe! –

+2

"Bündel" aufzurufen funktioniert bei mir nicht. Ich habe "bundle update guard" Befehl explizit ausgeführt – Darkside

13

Sie haben noch gem "guard" in Ihrem Edelstein-Datei.

Ich bekam den gleichen Fehler.

Eines der Plugins, die ich hatte, guard-bundler, war die Guard-Version bei 1.4.0 sperren, während die neueste Version der Wache 2.0.5 ist. Das Entfernen dieses Plugins hat den Fehler behoben. Vergessen Sie nicht, den Schutzbündler-Code aus Ihrer Wachdatei zu entfernen.

Ich rate, dass Ihre Wache Juwel als System Juwel installiert ist. Legen Sie es in Ihre Schmuckdatei und führen Sie es mit bundle exec.

Es gibt auch einen Abhängigkeitskonflikt zwischen Guard und better_errors in coderay. Ich habe es bei 1.0.5 fixiert, um beide zu installieren. Ich habe keine Funktionalität im Zusammenhang mit coderay getestet, um zu sehen, ob diese Version Probleme für better_errors verursacht.

gem 'coderay', '~> 1.0.5'

+2

Die Aktualisierung von Schutz 1.4.0 auf Schutz 2.0.5 war der Trick für mich. –