加盟

joins() 允許你將表連線到當前模型。對於前者

User.joins(:posts)

將生成以下 SQL 查詢:

"SELECT "users".* FROM "users" INNER JOIN "posts" ON "posts"."user_id" = "users"."id""

加入表後,你將可以訪問它:

User.joins(:posts).where(posts: { title: "Hello world" })

注意複數形式。如果你的關係是:has_many,則 joins() 引數應該是複數。否則,使用單數。

巢狀 joins

User.joins(posts: :images).where(images: { caption: 'First post' })

這將產生:

"SELECT "users".* FROM "users" INNER JOIN "posts" ON "posts"."user_id" = "users"."id" INNER JOIN "images" ON "images"."post_id" = "images"."id""