Pull to refresh

Comments 12

Описано в Rails Edge Guides и пока что отсутствует в стабильной версии.


Какого года статья? 2008-2009?
Оно еще во 2-й версии было. Возможно в гайдах и не было.
Основная суть такая. Используем STI если набор аттрибутов у каждого объекта примерно одинаков, но объекты имеют разное поведение. В других случаях ваш второй вариант.

Собственно, упомянутый active_record-acts_as – это продолжение заброшенного acts_as_relation, как следует из readme на Github. Что касается Sequel – да, намного более матёрый гем чем active_record-acts_as, посмотрю, спасибо.
Если юзается Postgres, то можно вынести частные поля в колонку с типом jsonb. Даже отношения можно замутить, если сделать View для каждой под-модели + в этом случае не нужно будет поле type. Всего пара костылей в абстракции, чтобы все работало как надо. Стильно, модно, молодежно, но особо никаких профитов по производительности, делаю так только чтобы ради единственной связи несколько отдельных таблиц не создавать.
а потом окажется что надо обновить 900000 записей такой «псевдомодели» без простоя сервиса, распарсив json каждого, внеся изменения, и сохранив обратно.
Postgres 9.5 уже умеет обновлять поля в jsonb функцией.
А потому что полиморфизм про другое.
Sign up to leave a comment.

Articles