Направляющие STI - Предотвращают базовый класс от инстанцирования

В Debian / Ubuntu в установках aptitude :

  • sudo vi /etc/default/jenkins
  • Добавить -Dhudson.model.DirectoryBrowserSupport.CSP= в JAVA_ARGS (например, JAVA_ARGS="-Dhudson.model.DirectoryBrowserSupport.CSP=")
  • Перезапустить jenkins - service jenkins restart

Этого было достаточно для меня, но для полного списка параметров см. этот ответ .

26
задан John Topley 17 May 2010 в 15:46
поделиться

3 ответа

Вы можете сделать self.abstract_class = true в базовом классе, чтобы сообщить ActiveRecord, что это абстрактный класс.

-3
ответ дан John Topley 28 November 2019 в 06:42
поделиться

Вы можете попробовать следующее:

class BaseClass
  def initialize
    raise "BaseClass cannot be initialized" if self.class == BaseClass
  end
end

class ChildClass
end

результат будет:

a = BaseClass.new  # Runtime Error
b = ChildClass.new # Ok

Надеюсь, что поможет

4
ответ дан 28 November 2019 в 06:42
поделиться

В функции инициализации проверьте, является ли класс базовым классом STI.

Хотя вопрос в том, зачем вам именно это нужно? Более вероятно, что выбор другого дизайна может вам больше помочь.

-1
ответ дан 28 November 2019 в 06:42
поделиться