加盟
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""