一般活动记录加入或包括

Sun*_*day 2 activerecord join ruby-on-rails

我有两个模型/表A和B.我想执行一个Active Record查询,其结果包括来自两个表的列.我尝试了内连接,因为它们听起来像是将两个表中的列组合在一起.但是,尝试Active Record joinsfinder方法仅返回第一个表的结果.

什么Active Record查询包含结果中两个表的列?也许includes寻找方法可能有所帮助.

编辑:将两个表视为ForumThreads和Posts.每个论坛帖子都有多个帖子.我希望查询结果中的行包含每个帖子的信息和论坛帖子的信息(例如主题标题).

这个问题可能已经回答了我的问题:Rails连接并包含连接表中的列

Gaz*_*ler 9

联接执行内部联接,但在您要求之前不会返回数据.

User.where(:id => 1).joins(:client_applications)
User Load (0.2ms)  SELECT "users".* FROM "users" INNER JOIN "client_applications" ON "client_applications"."user_id" = "users"."id" WHERE "users"."id" = 1
Run Code Online (Sandbox Code Playgroud)

包含将执行两个查询(使用where in)并缓存关联数据(Eager Loading)

User.where(:id => 1).includes(:client_applications)
User Load (0.4ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1
  ClientApplication Load (13.6ms)  SELECT "client_applications".* FROM "client_applications" WHERE "client_applications"."user_id" IN (1)
Run Code Online (Sandbox Code Playgroud)