【问题标题】:paypal-checkout-sdk breaks in ruby 3.0.1ruby 3.0.1 中的 paypal-checkout-sdk 中断
【发布时间】:2021-08-27 22:59:34
【问题描述】:

Ruby 3.0.1

导轨 6.1.3.2

执行 Paypal OrdersCreateRequest 失败并出现此错误

NoMethodError (undefined method `escape' for URI:Module):

回溯指向 .rvm/gems/ruby-3.0.1/gems/paypalhttp-1.0.0/lib/paypalhttp/serializers/form_encoded.rb:8:in `block in encode',其中包含从 paypalhttp v1.0.0 开始的这一行

encoded_params.push("#{URI.escape(k.to_s)}=#{URI.escape(v.to_s)}")

显然 URI.escape 方法已在 ruby​​ 3 中删除,如此处所述https://github.com/ruby/uri/issues/14

是否有解决方法,或者我必须等待 Paypal 更新 gem?我不想降级到 ruby​​ 2.x

【问题讨论】:

标签: paypal ruby-3


【解决方案1】:

你可以猴子补丁:

module URI
  def self.escape(*args)
    URI.encode_www_form_component(*args)
  end
end

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 2015-12-04
    • 2013-08-06
    • 2021-07-04
    • 2021-04-02
    • 2017-09-12
    • 2021-09-07
    • 2020-12-03
    • 2018-05-06
    相关资源
    最近更新 更多