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学習のために自作の勤怠管理アプリを制作していた時の話です。 アプリ内で月次の勤怠一覧を表示する際に問題が発生しました

