加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – RSpec:未初始化的常量ActiveRecord(NameError

发布时间:2020-12-17 02:40:56 所属栏目:百科 来源:网络整理
导读:当我从rails项目的根目录运行rspec时,出现以下错误: /Users/ysername/code/fsf/app/models/school_application.rb:3:in `top (required)': uninitialized constant ActiveRecord (NameError) 这是由我的spec_helper.rb文件中的require_relative调用触发的
当我从rails项目的根目录运行rspec时,出现以下错误:

/Users/ysername/code/fsf/app/models/school_application.rb:3:in `<top (required)>': uninitialized constant ActiveRecord (NameError)

这是由我的spec_helper.rb文件中的require_relative调用触发的

这是我的测试:

require 'spec_helper'

describe '#to_xml' do
  it 'returns the xml-ified version of a payment' do
    expect(SchoolApplication.to_xml(XXXXXXXXXXXXXXXX,10,400,"bob").to eq("<txn>   <ssl_merchant_id>5</ssl_merchant_id><ssl_user_id>3</ssl_user_id><ssl_test_mode>false</ssl_test_mode><ssl_card_number>2443444433334444</ssl_card_number><ssl_amount>400</ssl_amount><ssl_ssl_cvv2cvc2_indicator>1</ssl_cvv2cvc2_indicator><ssl_first_name>'bob'</ssl_first_name></txn>"))
  end
end

这是我的spec_helper.rb文件.

require 'rubygems'
ENV["RAILS_ENV"] ||= 'test'
require_relative("../app/models/school_application")

仅当我删除require_relative语句时,它不再知道SchoolApplication是什么.
不太确定这里发生了什么.我看过其他线程,但我很困惑他们的解决方案/问题如何与我自己的一致(例如在我的/ lib / dir中有另一个Active_Record副本???)

谢谢!

这是抛出错误的文件,school_application.rb

require 'builder'

class SchoolApplication < ActiveRecord::Base
   def self.to_xml(number,expiration,cvv,amount,name)
     xml = ::Builder::XmlMarkup.new
     xml.txn {
       xml.ssl_merchant_id 5
       xml.ssl_user_id 3
       xml.ssl_ssl_pin 1434
       xml.ssl_test_mode false  
       xml.ssl_card_number number
       xml.ssl_amount amount
       xml.ssl_cvv2cvc2_indicator cvv
       xml.ssl_first_name name
     }
     xml
   end
end

附:不要担心所有的付款凭证都是伪造的.

解决方法

您的spec_helper未加载Rails环境.尝试要求环境:

require 'rubygems'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment",__FILE__)

正确设置后,模型会自动加载,因此您可以删除require_relative行.

如果安装了rspec-rails gem,也可以生成新的spec_helper.rb:

rails generate rspec:install

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读