Rails 5 - 2 класса с одинаковым именем и неправильным вызовом - PullRequest
0 голосов
/ 25 января 2019

Задача

Я использую paypal-ruby-sdk, и в библиотеке есть класс Plan, шутки со мной, потому что у меня есть модель с тем же именем. Когда я вызываю любой метод в этой модели, он просто вызывает «неопределенный метод», потому что он вызывает библиотеку PayPal.

Библиотека: https://github.com/paypal/PayPal-Ruby-SDK

1 Ответ

0 голосов
/ 25 января 2019

Вы должны ссылаться на вложенные классы, используя Parent::Child синтаксис
План Paypal находится в PayPal::SDK::REST::Plan

Используйте PayPal::SDK::REST::Plan для ссылки на план Paypal
Используйте ::Plan для ссылки на ваш План. (Если вы определили свой План в корневом пространстве имен)
(::Plan означает Plan прямо под корневым пространством имен)

Все приличные библиотеки ruby ​​структурированы следующим образом и выставляют только одну константу прямо под корнем. (DecentModule в данном случае)

module DecentModule
  class ClassA
  end
  class ClassB
  end
end

Таким образом, они могут избежать путаницы корневого пространства имен.
Таким образом, мы можем ссылаться на FancyModule::ClassA, даже если мы определим ClassA в корневом пространстве имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...