ruby-on-rails-3 - guard 队给 "uninitialized constant Listen::Turnstile (NameError)"错误

标签 ruby-on-rails-3 ruby-on-rails-3.2 guard

我在尝试运行命令时遇到此错误:

guard

这是我在尝试安装Guard之前已经开发了一段时间的应用程序...

我正在遵循Ryan Bates关于 guard 的教程中的说明:

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

这是我的 gem 文件。
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>'

最佳答案

我在Rails 3.2.13应用程序中遇到了类似的问题。

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

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

一切工作一直持续到最近的bundle update为止,后者引入了更高版本的listen,这是guard的依赖项之一,而guard本身却受阻(不确定原因)。因此,您看到的错误是guard试图调用listen中不再存在的类。

通过将当前版本的guard显式添加到Gemfile中,解决了该问题:
gem 'guard', '>=2.1.0'

并且当然会重新捆绑。

关于ruby-on-rails-3 - guard 队给 "uninitialized constant Listen::Turnstile (NameError)"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19322183/

相关文章:

ruby-on-rails - 在 JavaScript 中访问 c​​urrent_user 帮助程序

ruby-on-rails - 当 guard 退出时, Spring 并没有停止

ruby-on-rails - Rails 3 应用程序上的多个数据库用户

mysql - 在 Rails 中将 3 个模型连接在一起以在迭代一个模型的 View 中显示

ruby-on-rails - 这是输出有关将要运行的测试的更多信息的正确方法吗?

ruby-on-rails-3 - 如何使用 Sidekiq 运行连续的后台作业?

ruby-on-rails - 根据当前 Rails.env 配置变量

ruby-on-rails - 强制重新加载!来自 Rails 3.2 控制台中的 lib 目录

ruby-on-rails - Guard gem - 没有这样的文件或目录错误

ruby - 当所有规范都通过guard-rspec时,有没有办法抑制Growl通知?