Guard无法加载class:rails

时间:2016-12-08 03:31:34

标签: ruby-on-rails rspec guard

我正在学习rails测试。在听到许多不同来源称赞后卫后,我打算安装它来玩它。但是,我在我的应用程序上安装它时遇到问题。

我按照guard rspec github中显示的步骤操作。这是我做的:

bundle install

我能够毫无困难地guard init rails rspec,但每当我运行iggy$ guard init rails rspec Expected string default value for '--listen-on'; got false (boolean) 22:19:09 - ERROR - Could not load 'guard/rails' or find class Guard::Rails 22:19:09 - ERROR - Error is: cannot load such file -- guard/rails 22:19:09 - ERROR - /Users/iggy/.rvm/gems/ruby-2.2.3/gems/guard-2.14.0/li... ... /Users/iggy/.rvm/gems/ruby-2.2.3/gems/guard-2.14.0/lib/guard/dsl.rb:383:in `rescue in evaluate': Invalid Guardfile, original error is: Could not load class: "Rails", backtrace: (dsl)> $GEM_PATH[0]/gems/guard-2.14.0/lib/guard/plugin_util.rb:57:in `initialize_plugin' (dsl)> $GEM_PATH[0]/gems/guard-2.14.0/lib/guard/internals/plugins.rb:26:in `add' ... 时,它都会显示以下错误:

Rails

我不确定为什么它说无法加载gem install rails课程。我跑了source 'https://rubygems.org' gem 'rails', '~> 5.0.0' gem 'puma', '~> 3.0' gem 'sass-rails', '~> 5.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.2' gem 'jquery-rails' gem 'turbolinks', '~> 5' gem 'jbuilder', '~> 2.5' gem 'carrierwave', '>= 1.0.0.rc', '< 2.0' gem 'fog' gem 'figaro' gem 'mini_magick' gem 'devise' gem 'searchkick' group :development, :test do gem 'byebug', platform: :mri gem 'rspec-rails', '~> 3.5' gem 'factory_girl_rails', '~> 4.7.0' end group :test do gem 'faker', '~> 1.6.6' gem 'capybara', '~> 2.10.2' gem 'database_cleaner', '~> 1.5.3' gem 'launchy', '~> 2.4.3' gem 'selenium-webdriver', '~> 3.0.3' end group :development do gem 'sqlite3' gem 'web-console' gem 'listen', '~> 3.0.5' gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' gem 'guard-rspec', '4.6.0', require: false end group :production do gem 'rails_12factor' gem 'pg' end gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 。仍然完全相同的错误。

这是我的完整宝石文件:

Compatible with RSpec >2.99 & 3
Tested against Ruby 2.2.x, JRuby 9.0.5.0 and Rubinius.

guard-rspec的github说:

{{1}}

我确认我的红宝石是&gt; = 2.2而RSpec是v.3 +。

我需要修复哪些内容才能在我的应用上保护?谢谢!

2 个答案:

答案 0 :(得分:0)

guard init rails是不必要的。因为guard init xxx只是插件名称(guard-xxx)。

答案 1 :(得分:0)

弄清楚错误是什么。我之前玩过两个不同的守卫:guard-railsguard-rspec。显然我在我的gemfiles中有guard init时运行guard-rails命令并创建了一个Guardfile

当我将guard-rails更改为guard-rspec并运行guard init rspec时,它不会自动覆盖旧Guardfile,从而导致错误。我删除了旧的Guardfile,将正确的后卫guard-rspec放入我的gemfiles中,安装了捆绑包,然后运行guard init rspec并且它有效!

为我(以及其他人)带走:

如果你遇到类似的问题(创建了护卫文件但是rails抱怨你没有合适的防护),请注意Guardfile一旦生成,就不会被自动覆盖。如果你有不同的保护gem,请确保先删除旧的保护文件,然后创建一个新的保护文件!