Ruby on rails 3 “给予保护”;未初始化常量侦听::旋转栅门(名称错误)“;错误

Ruby on rails 3 “给予保护”;未初始化常量侦听::旋转栅门(名称错误)“;错误,ruby-on-rails-3,ruby-on-rails-3.2,guard,Ruby On Rails 3,Ruby On Rails 3.2,Guard,尝试运行命令时出现以下错误: guard 这是一个应用程序,我已经开发了一段时间,现在才试图安装守卫 我遵循Ryan Bates的《守卫教程》中的说明: 这是我的宝石档案 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 'dynami

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

guard
这是一个应用程序,我已经开发了一段时间,现在才试图安装守卫

我遵循Ryan Bates的《守卫教程》中的说明:

这是我的宝石档案

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>'
app3git:(写测试)✗ 警卫
/Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/lib/guard.rb:47:在“设置”中:未初始化的常量侦听::旋转栅门(名称错误)
from/Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/lib/guard.rb:155:在“开始”中
from/Users/Nick/.rvm/gems/ruby-1.9.3-p448/gems/guard-1.4.0/lib/guard/cli.rb:104:在“开始”中
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_命令”
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`'
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`'
from/Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/ruby\u noexec\u包装:14:in'eval'
from/Users/Nick/.rvm/gems/ruby-1.9.3-p448/bin/ruby\u noexec\u包装:14:in`'
您的gem文件中没有
gem“guard”

我也犯了同样的错误

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

我猜你的guard gem是作为系统gem安装的。将它放在gem文件中,并使用
bundle exec
运行它

coderay上的guard和better_错误之间也存在依赖冲突。我把它固定在1.0.5,让它们都安装好了。我还没有测试任何与coderay相关的功能,以查看该版本是否会导致更好的错误


gem'coderay',“~>1.0.5”
我的rails 3.2.13应用程序也有类似的问题

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

gem 'guard-rspec'
gem 'guard-livereload'
gem 'guard-cucumber'
直到最近的
捆绑包更新
,带来了一个更新版本的
listen
,这是
guard
的依赖项之一,而
guard
本身却被阻止了(不知道为什么)。因此,您看到的错误是
guard
试图调用
listen
中不再存在的类

通过将当前版本的
guard
显式添加到
Gemfile
,问题得以解决:

gem 'guard', '>=2.1.0'

当然,重新绑定。

从guard 1.4.0升级到guard 2.0.5对我来说是个窍门。我添加了guard的特定版本,还添加了“guard livereload”。这就是我耍的把戏。谢谢你的帮助!调用“bundle”对我不起作用。我已经明确地运行了“bundle update guard”命令