##前提
UserとPostは1対Nの関係
class Post < ApplicationRecord
belongs_to :user
end
class User < ApplicationRecord
has_many :posts, dependent: :destroy
end
##解消前
テストログを見るとserializerが走ったときにN+1問題が発生していた。
def index
posts = current_user.posts
render json: posts
end
##解消後
def index
posts = current_user.posts.preload(:user)
render json: posts
end
scopeに切ると他でも使えてベター
model.rb
scope :preload_user, -> { preload(:user) }
def index
posts = current_user.posts.preload_user
render json: posts
end
##参考
preloadとeager_loadの使い分けは下記の記事を参照