Я пытаюсь реализовать STI следующегоRails STI пространство имен классов без использования колонного типа
module ModuleName
class ParentName
self.inheritance_column = 'column_name'
end
end
module ModuleName
class ChildName < ModuleName::ParentName
class << self
def find_sti_class(type_name)
type_name = self.name
super
end
def sti_name
self.name.sub(/^.*:/,"")
end
end
end
Когда я пытаюсь
ModuleName::ChildName.create(column_name: 'ChildName')
Я получаю следующее сообщение об ошибке
ActiveRecord::SubclassNotFound: Invalid single-table inheritance type: ChildName is not a subclass of ModuleName::ChildName
Я пытаясь обратиться к решению, представленному здесь Rails STI: How to change mapping between class name & value of the 'type' column
Любая помощь оценили. Благодарю.
Является ли '<< ModuleName :: ParentName' просто опечаткой или у вас на самом деле есть << там? –
опечатка. исправит его. Я использую <в фактическом коде. – rohan