タグ

2026年6月17日のブックマーク (1件)

  • 【Rails】has_one関連は自動で一緒に読み込まれない - Qiita

    has_one関連を勘違いしていたRails初心者が書いた記事です。 has_many関連は1対多の関係である以上毎回すべて取得するのは大変そうなので、関連先参照時に適宜取得クエリを実行するのは理解できるのですが、has_one関連って「1つ」しかないのだから、自動的に読み込まれる(キャッシュされる)のだと思い込んでいました。 目次 要約 経緯 原因判明 解決 要約 AとBが1対1の関係であり、A has Bの関連の場合、 has_oneを書いてるからって体(A)を取得した際にhas_one関連先(B)を自動で読み込むことはない。関連先(B)を読み込む際に追加でクエリを実行する。 eager loadingを明示することで関連データを取得することができる。 経緯 Rails学習のために自作の勤怠管理アプリを制作していた時の話です。 アプリ内で月次の勤怠一覧を表示する際に問題が発生しました

    【Rails】has_one関連は自動で一緒に読み込まれない - Qiita
    YassLab
    YassLab 2026/06/17
    “「関連ってそもそもなんだ...?」と思いRailsガイドで調べた / オブジェクトが持つhas_one関連先を事前に読み込むeager loadingという機能があることが分かり、それを利用することでN+1問題も解決できることが分かりました。”