Я хочу иметь два слоя STI. Первый слой работает, но я не уверен, как перенести первую модель в другую таблицу, используя STI. Пример:Как реализовать STI (в Rails) в справочной таблице?
class Instrument < ActiveRecord::Base
end
class Guitar < Instrument
end
class Piano < Instrument
# and so on...
Ok. Но я хочу, чтобы отслеживать категории инструментов, так что я могу сказать, их тип:
class InstrumentType < ActiveRecord::Base
end
class StringInstrumentType < InstrumentType
end
# etc.
Итак ... наша модель гитары становится:
class Guitar < Instrument
belongs_to :string_intrument_type
end
class StringInstrumentType < InstrumentType
has_many :guitars
end
Как это реализовать? Что я могу назвать столбцом внешнего ключа и как я могу указать Rails/AR, что делать?
Как я отступаю от базы здесь?
Этот сценарий изобретен, но мы находим, что в реальном мире рефакторинг хочет, чтобы мы двигались в этом направлении.