質問: "categories"."element_id" ``` この記載方法で、下のSQLになる理屈がよくわかりません。 テーブル構成というか、joinのためのカラムとしてはいかがあるかと思います。 ``` Pages(:id) PagesCategories(:page_id,:category_id) Categories(:id,element_id) Elements(:id) ``` この、pages_categoriesの中間テーブルはどこから出てきたんでしょうか? また、記載方法としては、中間テーブルがあって、その片方のテーブルが別のテーブルの外部キーを持っている場合のみ使える記載方法ということでしょうか?中間テーブルがないと、使えない記載方法ということでしょうか?
回答: おそらく、`Page`モデルの側に、`has_many :categories, through: :pages_categories`みたいな記述があるかと思います。 こうしておくと、`(Pageオブジェクト).categories`とするだけで、`pages_categories`も巻き込んだ3テーブルJOINを自動で行ってくれるようになります。