N+1問題の解決

N+1問題とは

N+1問題は解決すれば、1回のアクセスで取ってこられるデータを何度もアクセスして取ってくる、非効率的な状態。

 

今回の課題では、1人のuserに対し、複数の投稿(今回はboard)があるため、1人のuserの投稿を一気に複数取ってくることで、データベースへのアクセス回数を減らすことができる。

 

その対策が以下↓

app/controllers/boards_controller.rb

データを取得するコードに、includes(:user)を追記して、

def index
@boards = Board.all.includes(:user)
end

とする。