LoginSignup
0
0

More than 1 year has passed since last update.

ActiveModelSerialize で has_many の N+1 SQLクエリを防止するために eager_load する例 ( #Rails )

Last updated at Posted at 2020-03-30

Controller

class UsersController < ActiveController
  def index
    # render json: User.eager_load(:includes).all
    render json: User.eager_load(:books).all
  end
end

Serializer

class UserSerializer < ActiveModel::Serializer
  attributes :id,
             :name

  has_many :books
end

NOTE

途中 eager_load / includes が効かないような気がして gem も試したのだが、効かないというのは気のせいだった。

ams_lazy_relationships は Star数は少ないが includes のちょっとした問題点を解決してくれそうなgem?
httpリクエスト単位でのキャッシュや、もっと長いキャッシュを実現してくれそうな気もする。

Bajena/ams_lazy_relationships: ActiveModel Serializers addon for eliminating N+1 queries problem from the serializers.

Original by Github issue

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0