iTranslated by AI
The content below is an AI-generated translation. This is an experimental feature, and may contain errors. View original article
👶
How to Use joins and includes for Grandchild and Great-Grandchild Models in Rails ActiveRecord (Deeply Nested Includes)
Relationship Diagram
AAAs
┣BBBs
┃ ┣CCCs
┃ ┃ ┗FFFs
┃ ┗DDDs
┗GGGs
How to do it
AAAs.includes(:BBBs) # Child
AAAs.includes(BBBs: :CCCs) # Grandchild
AAAs.includes(:GGGs, BBBs: [:CCCs, :DDDs]) # Children and grandchildren
AAAs.joins(BBBs: [{CCCs: :FFFs}, :DDDs]) # With great-grandchildren
References
- Ruby on Rails - Avoid N+1 Query with Include and Join | Leon's Blogging
- Rails ActiveRecord/SQL Tips | Qiita
- Joins/Includes and where search across multiple tables in Rails | EasyRamble
- Including across multiple tables in Rails | Nomu-dari Netari
Discussion