Действительно ли класс Ruby для расширения, но под модулем? - PullRequest
0 голосов
/ 19 ноября 2018

Допустим ли синтаксис, чтобы класс Ruby расширялся сам, но под отдельным модулем? Например, у меня есть ErrorsController класс ..

class ErrorsController < ApplicationController
 ....
end

Но я хочу иметь другое поведение, если под модулем ..

class Share::ErrorsController < ErrorsController
 ....
end

Здесь ErrorsController расширяет ErrorsController, который работает нормально. Но потом я написал это в длинной форме:

module Share
  class ErrorsController < ErrorsController
  end
end

Казалось, что когда-то возникли проблемы ..

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Чтобы однозначно сослаться на ErrorsController «верхнего уровня», типичным методом является добавление двух двоеточий перед ним.Так, например:

module Share
  class ErrorsController < ::ErrorsController
  end
end
0 голосов
/ 19 ноября 2018

Если родительский ErrorsController хранится в другом модуле, вы должны использовать полный путь к нему.
Например:

module Share
  class ErrorsController < OtherModule::ErrorsController
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...