Das von den Rails-Dokumentation ist:ActiveSecord Joining-Syntax. Square Brackets vs Curly Brackets?
12.1.3.2 Nested Verbände (Multiple Ebene)
Category.joins(articles: [{ comments: :guest }, :tags])
Dies erzeugt den Beitritt:
SELECT categories.* FROM categories
INNER JOIN articles ON articles.category_id = categories.id
INNER JOIN comments ON comments.article_id = articles.id
INNER JOIN guests ON guests.comment_id = comments.id
INNER JOIN tags ON tags.article_id = articles.id
Oder ich n Englisch: "alle Kategorien zurückgeben, die Artikel enthalten, in denen diese Artikel einen Kommentar eines Gastes enthalten, und wo diese Artikel ebenfalls ein Tag haben."
So dass alles sinnvoll ist. Aber wie bekomme ich diese SQL-in Active:
SELECT categories.* FROM categories
INNER JOIN articles ON articles.category_id = categories.id
INNER JOIN comments ON comments.article_id = articles.id
INNER JOIN guests ON guests.comment_id = comments.id
INNER JOIN tags ON tags.comments_id = comments.id
Wie trete ich tags
zurück zu comments
. In Englisch möchte ich:
"alle Kategorien zurückgeben, die Artikel haben, wo diese Artikel einen Kommentar von einem Gast haben, und wo diese Kommentare auch ein Tag haben."
Noch wichtiger ist, was ist eine gute Möglichkeit, lockig vs eckigen Klammern zu denken?