8

尝试运行命令时出现此错误:

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

2 回答 2

13

gem "guard"的 gem 文件中没有。

我遇到了同样的错误。

我包含的插件之一,guard-bundler,将保护版本锁定在 1.4.0,而最新版本的保护是 2.0.5。删除该插件修复了错误。不要忘记从您的保护文件中删除保护捆绑器代码。

我猜你的保护 gem 是作为系统 gem 安装的。将其放入您的 gem 文件并使用bundle exec.

coderay上的guard和better_errors之间也存在依赖冲突。我将其固定在 1.0.5 以安装它们。我还没有测试任何与 coderay 相关的功能,以查看该版本是否会导致 Better_errors 出现问题。

gem 'coderay', '~> 1.0.5'

于 2013-10-11T19:32:04.013 回答
9

我的 rails 3.2.13 应用程序也有类似的问题。

令人困惑的部分是gem 'guard'我的 Gemfile 中没有,但 gem 显然是以下内容的依赖项:

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

一切正常,直到最近bundle update,它带来了一个更新版本的listen,guard的依赖项之一,而guard它本身却被阻止了(不知道为什么)。所以你看到的错误是guard试图调用一个不再存在的类listen

guard通过显式添加to的当前版本解决了该问题Gemfile

gem 'guard', '>=2.1.0'

当然还有重新捆绑。

于 2013-10-17T19:36:38.257 回答