ruby-on-rails - 类地址的父类(super class)不匹配 Braintree

标签 ruby-on-rails ruby payment braintree

我刚刚安装了 Braintree payment gem,现在我在之前正常工作的页面上收到错误。我有一个名为 Address 的模型。

superclass mismatch for class Address

这是预期的吗,因为 Braintree 也有一个名为 Address 的类?我该如何解决/修复它?

我正在使用最新的 Braintree gem (v2.25),Ruby 2.0 on Rails 4.0

最佳答案

你是对的。 Braintree gem 有一个地址类。但是,Address 类位于 Braintree 模块内部。由于它位于模块内部,因此您的类不应与其发生冲突。当然,除非您的 Address 类也在名为 Braintree 的模块内。您应该在 irb 中看到这种行为:

module Braintree
    class Address
    end
end

module MyModule
    class Address < String #Or ActiveRecord::Base or any class
    end
end

应该可以正常工作,因为您的地址位于不同的模块中。但是,如果它们位于同一模块中:

module Braintree
    class Address
    end
end

module Braintree
    class Address < String #Or ActiveRecord::Base or any class
    end
end

您将看到与上面发布的内容类似的错误。

因此,您的选择是确保您的 Address 类的命名是唯一的,或者确保它位于不同的模块内,并且无论何时引用一个地址对象,您都引用了正确的 Address 对象。

关于ruby-on-rails - 类地址的父类(super class)不匹配 Braintree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19533552/

相关文章:

node.js - Stripe 订阅附加组件和功能

ruby-on-rails - 如何使用 rspec 测试 ActionMailer Deliver_later

ruby - Rails 附加类型以使用 has_many :through and association extensions 连接表

ruby-on-rails - 为什么 Rspec 说 "Failure/Error: Unable to find matching line from backtrace"?

ruby-on-rails - Ruby Regex 如何指定不匹配

payment - 请求付款 session 时出现 Apple Pay "mass enablement"错误

ruby-on-rails - 开源新的遗物替代品

ruby-on-rails - Turbolinks 导致带有 href ="#"的链接触发页面刷新

ruby-on-rails - 在Ruby on Rails 4.0上安装时发生错误-atomic_reference.c错误71

php - Magento PayPal Payment Pro 不发送确认电子邮件