Создание дочернего класса из дочернего класса в Rails - PullRequest
0 голосов
/ 18 сентября 2018

Имя приложения Rails: "KayNein"

Файлы и папки:

  • app / kay_nein / kay_nein.rb (Модуль) app / kay_nein / handler.rb (Класс
  • внутри основных методов, содержащих KayNein)
  • app / kay_nein / sites / demo / demo.rb (дочерний класс обработчика)

Модуль KayNein:

Module KayNein
end

Класс обработчика:

Module KayNein
  class KayNein
    def initialize(browser)
      @browser = browser
    end
  end
end

Демонстрационный класс:

Module KayNein
  class Demo < Handler
  end
end

Пока все хорошо.

Однако я хочу создать подкаталог -- app / kay_nein / sites / demo / jira / - и поместить в маленькие дочерние классы Demo, которые наследуют все методы в цепочке.

Как я могу это сделать?Я пробовал разные перестановки, но я всегда получаю сообщение об ошибке в следующих строках:

<module:KayNein>': superclass mismatch for class Rdm (TypeError)

1 Ответ

0 голосов
/ 18 сентября 2018

Вы указываете суперкласс KayNein::Rdm более одного раза. Из предоставленной вами информации не видно, как это происходит в вашем приложении.

Чтобы решить эту проблему, вам нужно найти все определения для класса Rdm и убедиться, что суперкласс для каждого соответствует другим.

Вот пример кода, который приводит к той же ошибке, с которой вы столкнулись. Обратите внимание, что class Rdm указано более одного раза. Это разрешено, но только если суперкласс соответствует начальному суперклассу или если суперкласс опущен.

> class Parent; end
>
> module KayNein
>   class Rdm; end            # Initial class definition is OK
>   class Rdm < Parent; end   # Raises error because `Parent` does not match the superclass from the previous line.
>   class Rdm; end            # This would be OK because it matches the original class definition.
> end

Traceback (most recent call last):
        3: from /Users/andyogzewalla/.asdf/installs/ruby/2.5.1/bin/irb:11:in `<main>'
        2: from (irb):4
        1: from (irb):6:in `<module:KayNein>'
TypeError (superclass mismatch for class Rdm)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...