Capybara 2.1 错误未初始化常量 Rails (NameError)
Posted
技术标签:
【中文标题】Capybara 2.1 错误未初始化常量 Rails (NameError)【英文标题】:Capybara 2.1 Error uninitialized constant Rails (NameError) 【发布时间】:2013-08-21 22:19:41 【问题描述】:我刚刚将 Capybara Gem 从版本 1 升级到了 2.1.0(最新)。基于 Capybara 自述文件,我在 Spork.prefork 块内的 spec_helper.rb 中添加了以下几行
require 'capybara/rspec'
require 'capybara/rails'
但是,我遇到了一个错误
/home/user_1/.rvm/gems/ruby-1.9.3-p392/gems/capybara-2.1.0/lib/capybara/rails.rb:6:in `block (2 levels) in <top (required)>': uninitialized constant Rails (NameError)
为了让水豚正常工作,我错过了什么吗?
【问题讨论】:
可能是您安装了防护并尝试在控制台中使用 > rspec 吗?这是我的情况。 【参考方案1】:确保首先需要“rspec/rails”:
require 'rspec/rails'
require 'capybara/rspec'
require 'capybara/rails'
如果您首先需要“capybara/rails”,则会收到该错误。
【讨论】:
【参考方案2】:在您的 spec_helper.rb 文件中,此错误可能是由于在文件代码顶部添加 require 'capybara/rails'
行引起的。
相反,如果您查看自动生成的 spec_helper.rb 文件的一半,您会看到如下内容:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
在这些行之后添加require 'capybara/rails'
行,使其看起来像:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rails' #######
(你不需要哈希,那些只是为了突出插入位置)
希望这对您或其他人有所帮助...
【讨论】:
将require 'capybara/rspec'
添加到您的spec_helper.rb
文件中足以让我让它工作。我读到了here。【参考方案3】:
这对我来说适用于 capybara -v 3.24
打开 spec_helper.rb 文件。该文件可以在您的应用程序的 spec 文件夹中找到。
在 spec_helper.rb 文件中找到下面的行
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
添加
require 'capybara/rails'
就在下面
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
行
保存并关闭文件
就是这样
我希望这会有所帮助。
【讨论】:
以上是关于Capybara 2.1 错误未初始化常量 Rails (NameError)的主要内容,如果未能解决你的问题,请参考以下文章