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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |