Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 正在获取“缺少方法”';:未定义的方法“this';对于#<;Gem::规格:nokogiri-1.6.7.2>;(命名者)_Ruby On Rails_Ruby_Rspec - Fatal编程技术网

Ruby on rails 正在获取“缺少方法”';:未定义的方法“this';对于#<;Gem::规格:nokogiri-1.6.7.2>;(命名者)

Ruby on rails 正在获取“缺少方法”';:未定义的方法“this';对于#<;Gem::规格:nokogiri-1.6.7.2>;(命名者),ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我创建了一个rails应用程序,然后从另一个应用程序(包括spec文件)导入Gemfile。当我运行rspec时,会出现以下错误。我做错了什么 我的档案如下: source 'https://rubygems.org' gem 'rails', '4.2.3' gem 'sqlite3' gem 'sass-rails', '~> 5.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.1.0' gem 'jquer

我创建了一个rails应用程序,然后从另一个应用程序(包括spec文件)导入Gemfile。当我运行rspec时,会出现以下错误。我做错了什么

我的档案如下:

source 'https://rubygems.org'

gem 'rails', '4.2.3'
gem 'sqlite3'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'therubyracer', platforms: :ruby
gem 'capybara', '~> 2.4.4'
gem 'poltergeist', '~> 1.6.0'
gem 'phantomjs', '~> 1.9.8.0'

group :development, :test do
 gem 'byebug'
 gem 'web-console', '~> 2.0'

 gem 'spring'
end

gem 'httparty'
require 'rspec'
require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'

RSpec.configure do |config|
  config.include Capybara::DSL
end
我的spec_helper.rb如下所示:

source 'https://rubygems.org'

gem 'rails', '4.2.3'
gem 'sqlite3'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'therubyracer', platforms: :ruby
gem 'capybara', '~> 2.4.4'
gem 'poltergeist', '~> 1.6.0'
gem 'phantomjs', '~> 1.9.8.0'

group :development, :test do
 gem 'byebug'
 gem 'web-console', '~> 2.0'

 gem 'spring'
end

gem 'httparty'
require 'rspec'
require 'capybara'
require 'capybara/dsl'
require 'capybara/poltergeist'

RSpec.configure do |config|
  config.include Capybara::DSL
end
下面是我看到的错误:

/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:2157:in `method_missing': undefined method `this' for #<Gem::Specification:0x3fed45440788 nokogiri-1.6.7.2> (NoMethodError)
from /Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/specification.rb:1056:in `find_active_stub_by_path'
from /Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:63:in `require'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/nokogiri-1.6.7.2/lib/nokogiri.rb:29:in `rescue in <top (required)>'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/nokogiri-1.6.7.2/lib/nokogiri.rb:25:in `<top (required)>'
from /Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:119:in `require'
from /Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:119:in `require'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/capybara-2.6.0/lib/capybara.rb:2:in `<top (required)>'
from /Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:126:in `require'
from /Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:126:in `rescue in require'
from /Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:39:in `require'
from /Users/subratrout/rails_projects/recipefindern/spec/spec_helper.rb:2:in `<top (required)>'
from /Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `block in requires='
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `each'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in `requires='
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:109:in `block in process_options_into'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:108:in `each'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:108:in `process_options_into'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:21:in `configure'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:101:in `setup'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:88:in `run'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:73:in `run'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:41:in `invoke'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/exe/rspec:4:in `<top (required)>'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/bin/rspec:23:in `load'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/bin/rspec:23:in `<main>'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `eval'
from /Users/subratrout/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `<main>'
/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/specification.rb:2157:in'method_missing':未定义#的方法'this'(命名错误)
from/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/specification.rb:1056:“按路径查找活动的存根”
来自/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:63:in'require'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/nokogiri-1.6.7.2/lib/nokogiri.rb:29:in'rescue in'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/nokogiri-1.6.7.2/lib/nokogiri.rb:25:in`'
来自/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:119:in'require'
来自/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:119:in'require'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/capybara-2.6.0/lib/capybara.rb:2:in`'
来自/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:126:in'require'
来自/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:126:“在require中救援”
来自/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:39:in'require'
from/Users/subratrout/rails\u projects/recipefindern/spec/spec\u helper.rb:2:in`'
来自/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in'require'
来自/Users/subratrout/.rvm/rubies/ruby-2.2.2/lib/ruby/site\u ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in'require'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in`block in requires='1
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in'each'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration.rb:1295:in'requires'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:109:“进程中的块_options_into”
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:108:in'each'
来自/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration\u options.rb:108:“进程中的选项”
来自/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/configuration_options.rb:21:in“configure”
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:101:在“设置”中
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:88:in'run'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:73:in'run'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/lib/rspec/core/runner.rb:41:in'invoke'
来自/Users/subratrout/.rvm/gems/ruby-2.2.2/gems/rspec-core-3.4.1/exe/rspec:4:in`'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/bin/rspec:23:in'load'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/bin/rspec:23:in`'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/bin/ruby\u executable\u hooks:15:in'eval'
from/Users/subratrout/.rvm/gems/ruby-2.2.2/bin/ruby\u executable\u hooks:15:in`'

我也犯了同样的错误。 这很奇怪,因为在其他类似的项目中,rspec工作得很好。 我用rvm安装了旧版本的ruby(2.2.3),安装了gems,它运行正常

rvm install ruby-2.2.3
rvm ruby-2.2.3
gem install rspec
gem install rspec-its
gem install capybara
gem install poltergeist
然后rspec开始工作


如果有帮助,请写下:)

我所要做的就是删除Gemfile.lock文件,然后进行捆绑安装。不知何故,新的Ruby版本与Nokogiri版本1.6.7.2发生冲突。

是否安装了Nokogiri gem?是否在Windows上运行Rails?