Rspec错误:Diff不是模块



跟随Ryan Bates railscast全新加入rspec。

我得到

Guard现在正在'/Users/thealey/Source/rpd31'观看Guard::RSpec正在运行,RSpec为2!运行所有规格/用户/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/diff-lcs-1.1.3/lib/diff/lcs.rb:3:在"中:diff不是模块(TypeError)来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"require"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"需要中的块"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:227:在`load_dependence'中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"require"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-expectations-2.6.0/lib/rspec/expectations/detail.rb:1:在"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"require"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"需要中的块"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:227:在`load_dependence'中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"require"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-expectations-2.6.0/lib/rspec/expectations.rb:9:在"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"require"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"需要中的块"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:227:在`load_dependence'中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"require"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/with_rspec.rb:1:in"来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"require"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"需要中的块"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:227:在`load_dependence'中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/activesupport-3.0.10/lib/active_support/dependences.rb:239:在"require"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:207:在`block in expect_with'中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:202:在"each"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:202:在`expect_with'中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:184:在"expectation_frameworks"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:413:在"config_expectation_framework"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:165:在`ensure_example_ggroup_are_configure'中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:178:在"set_it_up"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:141:在"subclass"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:129:in"description"来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/dsl.rb:5:在"description"中来自/Users/thealey/Source/rpd31/spec/requests/create_projects_spec.rb:3:in"来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:在"load"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:在"load_spec_files中的块"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:在"map"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:在`load_spec_files'中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:18:in"run"来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/rb.rb:80:在"run_in_process"中来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/rb.rb:69:in"run"来自/Users/thealey/.rvm/gems/ruby-1.9.2-p290@rails31/gems/rspec-core-2.6.4/lib/rspec/core/runner.rb:11:in"自动运行中的块">

Gemfile是

source 'http://rubygems.org'
gem 'rails', '3.0.10'

gem 'mysql2', '0.2.7'

gem "authlogic"
gem 'activesupport', '3.0.10'
gem 'cancan'
gem 'will_paginate', "~> 3.0"
gem 'calendar_date_select', :git => 'http://github.com/paneq/calendar_date_select.git', :branch => 'rails3test'
gem 'bluecloth'
gem 'rdiscount'
gem 'capybara'
gem 'paperclip'
gem 'mail'

任何关于如何解决此问题的想法都将不胜感激。

编辑:我从Gemfile中删除了注释掉的行。

我把diff放进了我的gemfile,没有改变。

这是bundle的输出。

使用耙(0.9.2)使用摘要(1.0.0)使用activesupport(3.0.10)使用生成器(2.1.2)使用i18n(0.5.0)使用activemodel(3.0.10)使用芥子(2.6.6)使用机架(1.2.3)使用机架安装(0.6.14)使用机架测试(0.5.7)使用tzinfo(0.3.29)使用actionpack(3.0.10)使用mime类型(1.16)使用聚二醇(0.3.2)使用树梢(1.4.10)使用邮件(2.2.19)使用actionmailer(3.0.10)使用arel(2.0.10)使用活动记录(3.0.10)使用活动资源(3.0.10)使用可寻址(2.2.6)使用存档tar minitar(0.5.2)使用authlogic(3.0.3)使用裂纹(0.1.8)使用httparty(0.7.8)使用多部分支柱(1.1.3)使用法拉第(0.7.4)使用multi_json(1.0.3)使用oauth2(0.5.0)使用bitly(0.6.1)使用蓝布(2.1.0)使用bson(1.3.1)使用bson_ext(1.3.1)使用bundler(1.0.18)使用calendar_date_select(1.16.1)http://github.com/paneq/calendar_date_select.git(在轨道3测试)使用cancan(1.6.5)使用nokogiri(1.5.0)使用ffi(1.0.9)使用子进程(0.2.2)使用json_pure(1.6.0)使用rubyzip(0.9.4)使用硒网络驱动程序(2.5.0)使用xpath(0.1.4)使用水豚(1.1.1)使用慢性(0.6.4)使用可卡因(0.2.0)使用彩色(1.2)使用columsize(0.3.4)使用守护程序(1.1.4)使用diff(0.3.6)使用diff-lcs(1.1.3)使用事件机(0.12.10)使用factory_girl(2.1.0)使用rdoc(3.9.4)使用thor(0.14.6)使用枕木(3.0.10)使用factory_girl_rail(1.2.0)使用git_remote_branch(0.3.0)使用谷歌地图(1.6.7)使用gravtastic(3.2.6)使用防护装置(0.6.3)使用防护rspec(0.4.5)使用htmldiff(0.0.1)使用ruby_core_source(0.1.5)使用linecache19(0.5.12)使用mysql2(0.2.7)使用net ldap(0.2.2)使用网络ping(1.5.0)使用回形针(2.4.1)使用导轨(3.0.10)使用rdiscount(1.6.8)使用ri_cal(0.8.8)使用谜语(1.4.0)使用rspec核心(2.6.4)使用rspec期望值(2.6.0)使用rspec模型(2.6.0)使用rspec(2.6.0)使用rspec导轨(2.6.1)使用ruby-debug-base19(0.11.25)使用ruby-debug19(0.11.6)使用seed_dump(0.3.4)使用thin(1.2.11)使用思维狮身人面像(2.0.1)使用time_diff(0.2.1)使用will_pageate(3.0.pre)您的捆绑包已完成!使用"bundle show[gemname]"查看捆绑的gem的安装位置

我遇到了同样的问题。在我的案例中,我有一个名为Diff的模型类(在Diff.rb中定义),它导致了这个问题。我已经重命名了我的类/模块,现在一切都很好。我对可能发生这种名称空间冲突有些失望。

其他用户也遇到了源自其他宝石的碰撞问题(例如:https://github.com/sunaku/tork/issues/3)。如果我正在解决这个问题,我会去你的gem目录(对你的任何一个gem使用bundle show来查找它们所在的位置)并运行

find . -name diff.rb

这将告诉您所有包含diff.rb文件的库。我会寻找一个更模糊/维护不太积极的宝石作为罪魁祸首。你可能需要找到一个替代的gem(或者贡献一个修复问题的gem!)来修复这个问题。

最新更新