2009-12-15 3 views
2

У меня есть класс, который наследуется от класса User.Явно наследовать от класса в базовом модуле

например

класс MyClass < Пользователь

конец

В моей базе кода у меня есть класс пользователей

класс пользователя

end

Однако у меня также есть плагин, который предоставляет класс User в модуле YourModule :: User. Это плагин, к которому привязано мое приложение, и я не могу его удалить в данный момент, но это то, что я бы предпочел сделать.

С консоли я могу получить доступ к MyClass, и наследование правильно определено. Однако при запуске приложения, похоже, возникает некоторая путаница, которую пользовательский класс я наследую, и, следовательно, наследование не выполняется.

Есть ли способ, чтобы явно наследоваться от моего класса пользователя и во избежание путаницы с TheirModule :: User

ответ

0
class MyUser < User 
end 

class MyClass < MyUser 
end 

Этот способ MyClass унаследует как от вашего собственного класса MyUser и от TheirModule :: пользователя.

1

Если вы хотите, чтобы MyClass наследовался от класса User, вы можете поместить класс User внутри модуля, например MyModule.

class MyClass < MyModule::User 
end 
+0

Я не знаю ни одного другого решения, а не этот .... – khelll

+0

Есть в любом случае я могу ссылаться на модуль по умолчанию в определении класса, а затем того, чтобы перенести его на новый модуль в явном виде? Основы кода, на которые повлияло это изменение, довольно хрупкие, и изменение этой шкалы было бы тривиальным. – lyallward