Ich möchte eine Dropdown mit Baumstruktur zeigen. Durch die Verwendung this SO Lösung von @manoj, zeigt der Code für category_options_array den Baum wunderbar im Select-Formular-Steuerelement für ein Modell mit weniger Einträge, aber ein anderes Modell, das ungefähr 30 Eltern-IDs und einige davon mit 1-Level-Tiefe hat, stürzt ab. In der Tat, selbst wenn es für etwa 20 parent_ids verwendet, führt es 20 SQL-Abfragen, die nur für eine Dropdown-Steuerelement zu viel ist.Rails Optimieren Baumstruktur Code durch eifrig Laden
Ich habe versucht, es in einen Cache zu sammeln - wie diese
@categories = Category.where('parent_id = ? AND id != ?', parent_id, current_id).order(:name)
@categories.each do |c| .....
jedoch läuft es gleiche 20 SQL-Abfragen und 20-Cache.
Wenn ich lese eifrig lade es ist in der Regel für eine Join-Bedingung und ich konnte kein Beispiel für ein einzelnes Modell finden.Kann es durch eifriges Laden/Any-anderen-Weg zu Abfrage einmal ausgeführt werden und Anordnung Array zur Anzeige zu optimieren TIA.
Es läuft so viele Select-Abfragen wie es Kategorie Datensätze gibt und sogar nach dem Sammeln in einem Hash @ Kategorien alle es läuft ... seltsam !! Das Kategoriemodell ist: name: string, parent_id: integer (Standardwert = 0) – Means
Können Sie einen Gedanken mit Ihren Modelldefinitionen posten? – MBHNYC