首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Guard无法加载类:rails

Guard无法加载类:rails
EN

Stack Overflow用户
提问于 2016-12-08 11:31:34
回答 2查看 437关注 0票数 0

我正在学习rails测试。在听到许多不同的消息来源称赞guard后,我计划安装它来玩它。然而,我在我的应用程序上安装它时遇到了问题。

我正在遵循guard rspec github上显示的步骤。下面是我所做的:

代码语言:javascript
复制
gem 'guard-rspec', require: false #on gemfile development group

$ bundle install
$ bundle exec guard init rspec

我可以毫不费力地运行bundle install,但每当我运行guard init rails rspec时,它都会显示以下错误:

代码语言:javascript
复制
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。仍然是完全相同的错误。

这是我的完整的gemfile:

代码语言:javascript
复制
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]

guard-rspec的github表示:

代码语言:javascript
复制
Compatible with RSpec >2.99 & 3
Tested against Ruby 2.2.x, JRuby 9.0.5.0 and Rubinius.

我确认我的ruby是>= 2.2,RSpec是v. 3+。

我需要修复什么才能在我的应用程序上运行防护?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-12-09 10:00:20

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

票数 0
EN

Stack Overflow用户

发布于 2016-12-09 11:16:30

找出哪里出了问题。我之前和两个不同的后卫一起打球:guard-railsguard-rspec。显然,当我在gemfiles中有guard-rails时,我运行了guard init命令,它创建了一个Guardfile

当我将guard-rails更改为guard-rspec并运行guard init rspec时,它不会自动覆盖旧的Guardfile,从而导致错误。我删除了旧的Guardfile,有了正确的保护:guard-rspec到我的gemfiles中,捆绑安装,并运行guard init rspec,它工作了!

给我(和其他人)的建议:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41031315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档