問題は、条件に一致するものが にRestaurantないMenuItems場合、ActiveRecord は が見つからないと言うことRestaurantです。関連するコードは次のとおりです。
class Restaurant < ActiveRecord::Base
  has_many :menu_items, dependent: :destroy
  has_many :meals, through: :menu_items
  def self.with_meals_of_the_week
    includes({menu_items: :meal}).where(:'menu_items.date' => Time.now.beginning_of_week..Time.now.end_of_week)
  end
end
そして生成されたSQLコード:
Restaurant Load (0.0ms)←[0m  ←[1mSELECT DISTINCT "restaurants".id FROM "restaurants"
LEFT OUTER JOIN "menu_items" ON "menu_items"."restaurant_id" = "restaurants"."id"
LEFT OUTER JOIN "meals" ON "meals"."id" = "menu_items"."meal_id" WHERE
"restaurants"."id" = ? AND ("menu_items"."date" BETWEEN '2012-10-14 23:00:00.000000'
AND '2012-10-21 22:59:59.999999') LIMIT 1←[0m  [["id", "1"]]
ただし、 Rails Guidesのこの部分によると、これは発生しないはずです。
Post.includes(:comments).where("comments.visible", true)
この includes クエリの場合、どの投稿にもコメントがなかった場合でも、すべての投稿が読み込まれます。