タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

arelとjoinsに関するtakaesuのブックマーク (1)

  • has_manyをeager_load/includesするときの注意点 - Qiita

    eager_loadはJOINしてキャッシュもしてくれるActiveRecordのメソッドだが、この仕様を正しくイメージできてなかったのではまった. has_manyに対してIN句検索したときに一部のhas_manyデータのみがキャッシュされて意図しない結果となった. joinsではキャッシュされないためこの問題は起こらないが、当然キャッシュされないので後から追加クエリが発行される. includesは条件によってeager_loadと同じ動きをするため今回の用途だと同じ問題が発生する. ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い 再現 超簡単なhas_many関連を作成する. class User < ActiveRecord::Base has_many :roles end class Role < ActiveRecord::

    has_manyをeager_load/includesするときの注意点 - Qiita
    takaesu
    takaesu 2015/10/16
    joinsを使ってN+1を回避する
  • 1