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

ruby-on-rails – 活跃商家 – 未初始化的常量ActiveSupport ::

发布时间:2020-12-17 02:11:43 所属栏目:百科 来源:网络整理
导读:我有activemerchant 1.16.0和rails 3.0.5. 我正在尝试构建一个基本代码,以使用活动商家与PayPal的网关进行通信. if credit_card.valid? # or gateway.purchase to do both authorize and capture response = gateway.authorize(1000,credit_card,:ip = "127.
我有activemerchant 1.16.0和rails 3.0.5.

我正在尝试构建一个基本代码,以使用活动商家与PayPal的网关进行通信.

if credit_card.valid?
  # or gateway.purchase to do both authorize and capture
  response = gateway.authorize(1000,credit_card,:ip => "127.0.0.1")
  if response.success?
    gateway.capture(1000,response.authorization)
    puts "Purchase complete!"
  else
    puts "Error: #{response.message}"
  end
else
  puts "Error: credit card is not valid. #{credit_card.errors.full_messages.join('. ')}"
end

我收到以下错误:

/Library/Ruby/Gems/1.8/gems/activesupport-3.0.9/lib/active_support/xml_mini/rexml.rb:20:in `parse': uninitialized constant ActiveSupport::XmlMini_REXML::StringIO (NameError)

此错误从gateway.authorize()调用传播.
知道我的设置有什么问题吗?
谢谢.

解决方法

根据这个问题,它在代码本身时不起作用,但在需要添加“stringio”时起作用.

我怀疑ActiveMerchant是经过单元测试的,但由于某种原因,这些单元测试没有检测到对StringIO的依赖,可能是因为单元测试代码的其他部分间接需要stringio.

我最近发现的一件事是需要’yaml’给你stringio库作为副作用:

StringIO.new
# NameError: uninitialized constant StringIO
#   from (irb):1
require "yaml"
# => true
StringIO.new
# => #<StringIO:0x7fb7d48ce360>
RUBY_VERSION
# => "1.8.7"

并且不难想象ActiveMerchant(或Rails的其他部分)的单元测试需要yaml.

但是,这只是猜测.我没有检查,因为我不使用Rails.

(编辑:李大同)

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

    推荐文章
      热点阅读