2013-10-11 40 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对我来说是个诡计。 –

相关问题