У меня есть приложение системы управления контентом, которое использует таблицу полиморфного дерева в качестве основы своего устройства. Я столкнулся с проблемой, когда дерево становится достаточно большим, и поскольку у нас довольно много различных модулей (около 25), просто выполнить: include =>: instance не срезает горчицу. Экземпляр - это название наших полиморфных отношений.
Самое смешное, что в большинстве случаев, когда мне нужен большой список этих элементов, все, что мне действительно нужно, это их имя из связанной таблицы (например, для целей индексной панели), все остальное находится в центральный стол. Поэтому я подумал, что мне, вероятно, следует реализовать какой-то кеш столбцов для имени в центральной таблице. (Как кеш счетчика, который уже есть у rails).
Мне просто интересно, существует ли плагин для управления этим уже?
Если нет, я просто собирался добавить столбец «имя» в центральную таблицу, и, поскольку все полиморфные модели наследуют суперкласс, просто добавьте обратный вызов, который проталкивает имя в центральную таблицу при каждом создании элемента или обновленный. Тогда я бы просто сделал большую миграцию, чтобы сначала ее заполнить?
Есть ли недостатки этого дизайна?
Я полагаю, что для большей гибкости столбец может быть своего рода сериализованным кешем, где я мог бы хранить другие вещи в случае необходимости? Г! : D