N+1問題を解決したいです。
gem 'bullet'を導入して下記の検証結果が得られたので
lang
1N+1 Query detected 2 Category => [:sub_categories] 3 Add to your finder: :includes => [:sub_categories] 4N+1 Query method call stack 5 /Users/xxx/Documents/yyyy/app/controllers/application_controller.rb:90:in `category_select' 6 /Users/xxx/Documents/yyyy/app/controllers/application_controller.rb:71:in `set_search' 7
lang
1#修正前 2 def set_search 3 @search=Item.includes(:sub_category).search(params[:q]) 4 category_select 5 end 6 7 def category_select 8 root = Category.find(1) 9 @categories = root.sub_categories.sort{|a, b| a.code <=> b.code} 10 @sub_categories = @categories[0].sub_categories.sort{|a, b| a.code <=> b.code} 11 end
lang
1#修正後 2 def set_search 3 @search=Item.includes(:sub_category).search(params[:q]) 4 category_select 5 end 6 7 def category_select 8 root = Category.find(1) 9 @categories = root.includes(:sub_category).sort{|a, b| a.code <=> b.code} 10 @sub_categories = @categories[0].includes(:sub_category).sort{|a, b| a.code <=> b.code} 11 end
と修正したところundefined method `includes' for #Category:0x007f8f2fb0aa70
とエラーになってしまいます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/02/12 07:29