0
我想顯示一個帶有樹結構的下拉列表。使用@manoj給出的this SO解決方案,category_options_array的代碼在模型的選擇表單控件中以奇妙的方式顯示樹更少的條目,但另一個模型有大約30個父ID,其中一些具有1級深度,服務器崩潰。實際上,即使它使用了20個parent_ids,它也會執行20個SQL查詢,這對於一個下拉控件來說太多了。Rails通過急切加載優化樹結構代碼
我想它收集到緩存 - 這樣
@categories = Category.where('parent_id = ? AND id != ?', parent_id, current_id).order(:name)
@categories.each do |c| .....
然而,它運行相同的20 SQL查詢,20緩存。
當我閱讀急切的加載它通常是一個連接條件,我找不到任何單個模型的例子。可以通過加載/任何其他方式優化查詢運行一次,並安排數組顯示?TIA。
它運行儘可能多的選擇查詢,因爲有類別記錄,甚至在收集它們在一個哈希@categories它運行所有這些......奇怪!類別模型是:name:string,parent_id:integer(默認值= 0) – Means
您可以發佈模型定義的要點嗎? – MBHNYC