如何在Ruby

时间:2018-01-15 14:26:48

标签: ruby activemerchant shopify-activemerchant

我试图覆盖' requires_name'方法或其变量在https://github.com/activemerchant/active_merchant/blob/master/lib/active_merchant/billing/credit_card.rb的第315行上,以便不执行第328行的检查。在澳大利亚,卡片名称通常不会在付款期间收集,所以我试图传递nils。我没有任何工作。

我尝试过class_variable_set,如:

ActiveMerchant::Billing::CreditCard.class_variable_set(:@@requires_name, Proc.new do
    false
end)

我在这里尝试过require_name和require_name。没有区别。

我试过了:

ActiveMerchant::Billing::CreditCard.requires_name = Proc.new do
    false
end)

我尝试了其他各种各样的事情。我该如何覆盖它?

1 个答案:

答案 0 :(得分:3)

您可以覆盖该方法,但更容易设置方法返回的值:

ActiveMerchant::Billing::CreditCard.require_name = false

在内部,require_name存储为类实例变量

ActiveMerchant::Billing::CreditCard.instance_variable_get(:@require_name)
#=> false