我有两个模型/表A和B。我想执行Active Record查询,其中结果包括两个表中的列。我尝试了inner joins,因为它们听起来好像它们合并了两个表中的列。但是,尝试使用Active Record joins
查找器方法只能从第一个表返回结果。
哪些Active Record查询在结果中包括来自两个表的列?也许includes
查找器方法可能会有所帮助。
编辑:将两个表视为ForumThreads和Posts。每个论坛主题都有多个帖子。我希望查询结果中的行包含每个帖子的信息和论坛主题的信息(例如主题名称)。
这个问题可能回答了我的问题:Rails Joins and include columns from joins table
最佳答案
Joins执行内部联接,但是直到您要求时才返回数据。
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
Includes将执行两个查询(在其中使用)并缓存关联的数据(快速加载)
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)
关于ruby-on-rails - 常规Active Record加入或包含,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9167317/