Ruby on rails 在关联上调用关联时,是否有一种方法可以使用ActiveRecord而不是两个SQL查询?
假设我们有用户、帖子和评论。用户有很多帖子,帖子有很多评论,属于一个用户。评论只属于帖子 假设我有一条评论,我想让用户与帖子关联 我可以做:Ruby on rails 在关联上调用关联时,是否有一种方法可以使用ActiveRecord而不是两个SQL查询?,ruby-on-rails,associations,rails-activerecord,Ruby On Rails,Associations,Rails Activerecord,假设我们有用户、帖子和评论。用户有很多帖子,帖子有很多评论,属于一个用户。评论只属于帖子 假设我有一条评论,我想让用户与帖子关联 我可以做:comment.post.user 这会触发2个SQL查询(除非帖子已经缓存): 现在,我不是在问是否可以对此进行一次SQL查询。我知道是的。有没有办法通过ActiveRecord只进行一次查询 我想,如果上述交易是在交易中完成的,那可能也没什么大不了的,但我怀疑这是真的 您可以使用。includes方法:是的,它们称为联接。在您回顾这篇文章之后,如果您仍有
comment.post.user
这会触发2个SQL查询(除非帖子已经缓存):
现在,我不是在问是否可以对此进行一次SQL查询。我知道是的。有没有办法通过ActiveRecord只进行一次查询
我想,如果上述交易是在交易中完成的,那可能也没什么大不了的,但我怀疑这是真的 您可以使用。includes方法:是的,它们称为联接。在您回顾这篇文章之后,如果您仍有困难,请尝试一些SQL,发布表结构和您尝试过的内容,我们将提供帮助!我知道。我说我知道可以进行一个SQL查询,这种方式是连接,但是在我上面展示的例子中,ActiveRecord有没有一种很好的方法可以做到这一点。错过了这一部分,我会编辑主题以包含ActiveRecord,然后删除SQL标记。与SQL相比,这更像是一个activeRecord问题。
Post Load (0.8ms) SELECT "posts".* FROM "posts" WHERE "posts"."id" = $1 LIMIT 1 [["id", 1]]
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]]