質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

3回答

3520閲覧

activeadmin上でのN+1問題

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2015/06/13 19:17

activeadminの場合だけN+1問題が起きてしまいます。
どこに追加すれば良いのかわかりません、教えて下さい

lang

1ActiveAdmin.register Item do 2 3 index do 4 column :id 5 column :user_id 6 column :category do |item| 7 if item.category.present? 8 link_to item.category.name, admin_category_path(item.category) 9 else 10 status_tag('Empty') 11 end 12 end 13 column "タイトル",:title 14 column :condition do |item| 15 if item.condition.present? 16 link_to item.condition.name, admin_condition_path(item.condition) 17 else 18 status_tag('Empty') 19 end 20 end 21 column "地域",:area 22 date_column :limit_day 23 column "トレード",:trade 24 column :item_status do |item| 25 if item.item_status.present? 26 item.item_status.name 27 else 28 status_tag('Empty') 29 end 30 end 31 column :limit_check 32 column :infraction 33 date_column :created_at 34 # 削除済みの場合は"削除"と表示 35 column :deleted do |f| 36 f.deleted_at ? "削除済み" : nil 37 end 38 39 actions 40 end 41end

ログ

lang

1http://localhost:3000/admin/items 2N+1 Query detected 3 Item => [:category] 4 Add to your finder: :includes => [:category] 5N+1 Query method call stack 6 /Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:32:in `block (3 levels) in <top (required)>' 7 /Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:31:in `block (2 levels) in <top (required)>' 8 9/Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:32:in `block (3 levels) in <top (required)>' 10/Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:31:in `block (2 levels) in <top (required)>' 11user: maimai 12http://localhost:3000/admin/items 13N+1 Query detected 14 Item => [:condition] 15 Add to your finder: :includes => [:condition] 16N+1 Query method call stack 17 /Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:40:in `block (3 levels) in <top (required)>' 18 /Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:39:in `block (2 levels) in <top (required)>' 19 20/Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:40:in `block (3 levels) in <top (required)>' 21/Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:39:in `block (2 levels) in <top (required)>' 22user: maimai 23http://localhost:3000/admin/items 24N+1 Query detected 25 Item => [:item_status] 26 Add to your finder: :includes => [:item_status] 27N+1 Query method call stack 28 /Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:50:in `block (3 levels) in <top (required)>' 29 /Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:49:in `block (2 levels) in <top (required)>' 30 31/Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:50:in `block (3 levels) in <top (required)>' 32/Users/maimai/RubymineProjects/kopotyan-master/app/admin/item.rb:49:in `block (2 levels) in <top (required)>' 33

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

lang

1 2 controller do 3 def scoped_collection 4 # 削除済みのデータも取得するようにscopeを変更 5 Item.with_deleted.includes(:category, :condition, :item_status) 6 end 7 end

投稿2015/06/29 06:44

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

includeじゃなくてincludesでした、申し訳ない

投稿2015/06/14 11:37

9a48wy3khhgg9t3

総合スコア106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smith

2015/06/14 13:13

includesでもN+1問題が検出されます。 ログは同じでした。。
guest

0

ActiveAdmin.register Item.includes(:category,:condition,:item_status) do

とかでどうでしょうか?

投稿2015/06/14 00:40

編集2015/06/14 11:37
9a48wy3khhgg9t3

総合スコア106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/06/14 02:16

in `include': wrong argument type Symbol (expected Module) (TypeError)
退会済みユーザー

退会済みユーザー

2015/06/14 02:17

になってしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問