Rails の joins で
{ b: :c } の : は何を意味しているのかを 「構文暗記」ではなく「考え方」から理解する。
Active Record の joins は一言でいうと:
「別のテーブルの情報も使って検索できるようにする」ための橋渡し
単体のテーブルだけではなく、
関連先のテーブルのカラムを条件に使いたいときに必要になる。
今回のテーブルの関係(例):
Film
↓ has_many
Inventory
↓ has_many
Rental
日本語にすると:
👉 これは 一直線の階段構造(親 → 子 → 孫) になっている。
この関係を joins で表現すると:
Film.joins(inventories: :rentals)