У нас есть модели, как Поставщиком, Дистрибьютор, Vendor, Покупатель в нашей схеме. Эти объекты имеют некоторые общие атрибуты (например, имя, описание, офисы продаж и т. Д.), Но в основном у них есть расходящаяся схема с различными has_many: через ассоциации (у поставщика много ресурсов, но нет других), из-за чего их нужно было свернуть на отдельные модели.Полиморфная абстракция моделей и потенциала MI в рельсах?
У нас также есть различные типы событий в системе, например, событие партнерства, событие дистрибьюторские, событие закупок и т.д.
Как я могу создать is_a отношения и абстрактные эти покупателей, продавцов и т. д. в модель компании и при создании мероприятия, например, как партнерское мероприятие, просто скажите, что компания 1 сотрудничает с компанией 2, не беспокоясь о том, что такое тип компании, так что я могу сделать что-то подобное в моей форме для представления события:
<p>
<%= f.label "Company 1" %>
<%= f.collection_select :partnering_company_id_1, Company.all ,:id, :name, { :default => true} %>
</p>
Я хочу поделиться более подробной информацией о схеме в случае ее необходимости. Это возможно? Недавно я столкнулся с this блога, который идет дальше и описывает MTI, но я не уверен, применим ли это к текущему запросу проблемы.
Не слишком увлечен ИППП, так как только модели разделяют несколько атрибутов общих и имеют их собственный has_many: через ассоциации. Также каждая из этих моделей, вероятно, будет доступна с помощью sphinx отдельно. – papdel
У вас может быть много моделей. Дело в STI заключается в том, что у вас будет только одна таблица. Но если ваши модели не обладают многими атрибутами, это не лучшее решение. –