Я хочу показать выпадающее меню с древовидной структурой. Используя this SO-решение, данное @manoj, код для category_options_array прекрасно отображает дерево в элементе управления select для модели с меньше, но другая модель, которая имеет около 30 идентификаторов родителей, а некоторые из них с глубиной 1 уровень, сервер выходит из строя. На самом деле, даже если он использует 20 родительских_последовательностей, он выполняет 20 SQL-запросов, которые слишком просто для одного выпадающего элемента управления.Rails Оптимизация древовидного кода с помощью eager-loading
Я пытался собирать его в кэш - как этот
@categories = Category.where('parent_id = ? AND id != ?', parent_id, current_id).order(:name)
@categories.each do |c| .....
однако, работает же 20 запросов SQL и 20 кэш.
Когда я читаю активную загрузку, это обычно условие соединения, и я не мог найти ни одного примера для одной модели. Могу ли я оптимизировать его с помощью загрузки или любого другого способа, чтобы запрос выполнялся один раз и организовывал массив для отображения ? TIA.
Он запускает как можно больше запросов, так как есть записи о категориях и даже после их сбора в хеш-файлах он запускает все эти ... странные !! Модель категории: имя: строка, parent_id: integer (значение по умолчанию = 0) – Means
вы можете опубликовать суть с определениями модели? – MBHNYC