我试图在 https://github.com/activemerchant/active_merchant/blob/master/lib/active_merchant/billing/credit_card.rb 的第 315 行覆盖“requires_name”方法或其变量这样就不会执行第 328 行的检查。在澳大利亚,付款时通常不会收集卡名,因此我试图传入 nils。我没有得到任何工作。
我试过 class_variable_set :
ActiveMerchant::Billing::CreditCard.class_variable_set(:@@requires_name, Proc.new do
false
end)
我在这里试过 requires_name 和 require_name 。没有区别。
我试过:
ActiveMerchant::Billing::CreditCard.requires_name = Proc.new do
false
end)
我尝试过其他各种方法。我该如何覆盖它?
最佳答案
您可以覆盖该方法,但设置该方法返回的值更容易:
ActiveMerchant::Billing::CreditCard.require_name = false
在内部,require_name
被存储为一个类实例变量:
ActiveMerchant::Billing::CreditCard.instance_variable_get(:@require_name)
#=> false
关于ruby - 如何在 Ruby 中覆盖类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48264966/